2016-06-03 7 views
1

Ich habe eine Klasse, wo einige Felder befinden.Wie kann ich ein Objekt der Klasse erhalten, wenn ich auf ListView Item klicke?

public class Equipment { 
    public String GlobalType; 
    public String NameEquip; 
    public String SerialNumEquip; 
    public String EquipmentMark; 
    public String IDequipment; 
    public String StatusEquipment; 
    public String InstDate; 
    public String StateEquipment; 
    public String GurEndDate; 
    public String Location;} 

In ListView ich drei dieser Felder verwende ich habe benutzerdefinierte Layout für dreiTextView s, aber, wenn ich auf ein Element klicken, ich brauche ein Objekt der Klasse zu erhalten, deren Felder I verwende in ListView.

+0

setOnClicklisteners auf bestimmte Textviews oder wenn seine lange Zeichenfolge dann spannable onclicks verwenden. – Sush

+0

Können Sie zeigen, wie setOnClickListener auf textview gesetzt wird? – Vernir

+0

Zu allen TextView meinte ich – Sush

Antwort

1

Hier ist es:

getList().setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
      Object object = parent.getItemAtPosition(position); 
      // And then cast object to your type 
     } 
    }); 
0

Ich denke, Sie information über Adapter für Listview/RecyclerView/ViewHolder Muster in Android zu lesen - es ist Grundlagen der Android. Danach können Sie es leicht tun.

+0

Ich habe gelesen, aber immer noch nicht verstanden. Ich bin neu in Java und Android, also kannst du es mir erklären? – Vernir

+0

Sie müssen Ihren eigenen Adapter erstellen, der Ihre Interaktion mit jedem einzelnen Element Ihrer Liste vereinfacht. Wiederholen Sie einfach das [Beispiel] (https://developer.android.com/guide/topics/ui/layout/listview.html?hl=en#Example) – Alexander

0

Verwenden interface als Callback in Ihrem Adapter und Griff auf Ihre Activity Oder Fragment

// ++++++++++ Inside Adapter 
private OnItemClickListener onItemClickListener; 
public interface OnItemClickListener { 
    void onClicked(int viewId, int position, Object item); 
} 
// OnBinde/OnView 
if (onItemClickListener != null) { 
    onItemClickListener.onClicked(myTappedView.getId(), getAdapterPosition(), item); 
} 
// ++++++++++ Inside Activity/Fragment 
public void onClicked(int viewId, int position, Object item) { 
    if (item instanceof MyCustomObject) { 
     // Do Some Things 
    } 
} 
Verwandte Themen