android listview arrayadapter - Praktischer Unterschied zwischen Position und Zeilen-ID in onListItemClick ()




1 Answers

Position : Die Position der Ansicht in der Liste
id : Die Zeilen-ID des Elements, auf das geklickt wurde

Eine Position beginnt bei 0, von oben nach unten in der ListView. Um eine richtige Zeilen-ID zu erhalten, ist es wichtig, dass der Cursor, der an den Adapter übergeben wurde, eine Spalte namens '_id' enthält, die eine eindeutige ID für jede Zeile in der Tabelle darstellt .

Wenn Sie einen ArrayAdapter verwenden, werden position und id gleich. Die ID ist der zurückgegebene Wert von Adapter.getItemId(int) Wenn Sie also ein ArrayAdapter verwenden, entspricht dies der Position. Eine schnelle Suche im ArrayAdapter Quellcode zeigt an, dass die Rückgabeposition verwendet wird. die ID ausarbeiten.

studio example

Ich bin verwirrt über den Unterschied zwischen postion und row id in ListActivity.onListItemClick() .

Die Dokumentation enthält Folgendes:

position  The position of the view in the list
id        The row id of the item that was clicked

Gibt es einen praktischen Unterschied zwischen den beiden? Ich nehme an, da es zwei verschiedene Parameter gibt, dass es Situationen gibt, in denen die Werte unterschiedlich sind, aber basierend auf der Formulierung in der Dokumentation, ist es schwer zu sehen, was dieser Unterschied sein könnte. Kann einer von ihnen den Wert einer Datenbankzeilen-ID halten, die von einem Cursor oder einer anderen speziellen Funktion bereitgestellt wird?




Related