Bekommen Wert von Element auf OnItemClick Listview
Ich versuche, den Wert eines ausgewählten Elements innerhalb einer benutzerdefinierten adapter auf ein listview. Dies versuche ich mit folgenden code:
public void onItemClick(AdapterView<?> parent, View v,
int position, long id) {
View curr = parent.getChildAt((int) id);
TextView c = (TextView)curr.findViewById(R.id.tvPopUpItem);
String playerChanged = c.getText().toString();
Toast.makeText(Settings.this,playerChanged, Toast.LENGTH_SHORT).show();
}
Am Anfang, wenn ich Sie auf, die Werte sind gut, aber sobald ich gescrollt und ich auf einem anderen Posten, bekomme ich den falschen Wert, Element geklickt... keine Ahnung, was dies verursacht?
InformationsquelleAutor Matthias Vanb | 2012-11-15
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den parameter
v
ist die aktuelle Zeile. so verwenden:(Oder verwenden Sie
getChildAt(position)
aber das wäre langsamer.)Verstehen Sie vielleicht in der Lage sein, um dies zu vereinfachen mehr abhängig von Ihrem layout.
Je nach adapter
id
beziehen sich auf einen völlig anderen index. Zum Beispiel CursorAdapters Rückkehr der Primärschlüssel der Tabelle inid
.position
auf der anderen Seite sollten Sie sich immer auf die Zeile zu zählen.Vielen Dank, das funktioniert für mich Super Arbeit!!!.
InformationsquelleAutor Sam
Nur eine Kleine Änderung ist Erforderlich
Da Sie benutzerdefinierte Ansicht, die Sie brauchen, um passieren die View-argument in Ihrer OnItemClickListener, dann müssen Sie diesen Wert verwenden, um die Details des TextViews, die in diesem
InformationsquelleAutor Ron
Hier username ist ein string-Feld in einer Klasse deklariert, und Sie müssen über die Fahrt
getItem()
Methode in der adapter-Klasse, um die details des aufgeblähten Zeile, wenn Sie auf.InformationsquelleAutor Srichandra Amrutaluri