Android: Holen Sie sich die position von Element in einem listview-angesichts Ihrer id:
getItemIdAtPosition()
ist eine Funktion, die in android verwendet, um die id eines Elements in einer Liste anzeigen gegeben, seine position
gibt es eine Möglichkeit das Gegenteil tun, d.h. die position eines Elements in einer Listenansicht angesichts seiner id?
- Sie haben ein array oder eine arraylist, die ist, sichern Sie Ihre Liste Anzeigen, richtig? Ich bin mir ziemlich sicher, dass Sie können es verwenden, tun dies erreichen.
InformationsquelleAutor user2595281 | 2013-08-02
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nicht. Sie müssen es manuell tun. Erstellen Sie eine öffentliche Methode innerhalb der adapter, die Sie verwenden; in dieser Methode loop auf die adapter Artikel und überprüfen Sie jedes Element id. Wenn es == zu der Methode param, dann wieder die index.
Update: könnte Man auch sparen eine HashMap für die position der/id in den adapter, wenn die lookup-Leistung stellt ein problem für Ihren Anwendungsfall.
Update: Wenn Sie diese Methode verwenden möchten, die außerhalb der adapter, dann nutzen Sie unter:
Nicht sicher, ob die Frage noch offen ist. Trotzdem dachte ich werde erzählen, wie ich es gemacht habe, so dass es helfen kann, jemand der sucht, das gleiche zu tun.
Können Sie die tag-Eigenschaft einer Ansicht speichern, um die Zuordnung zwischen dieser Ansicht, die id und die position in der Liste.
In der Dokumentation für tags, die auf der android developer Seite erklärt es gut:
http://developer.android.com/reference/android/view/View.html#Tags
http://developer.android.com/reference/android/view/View.html#setTag(int, java.lang.Objekt)
http://developer.android.com/reference/android/view/View.html#getTag(int)
Beispiel:
In der getView-Methode der Liste, adapter, können Sie das mapping für das anzeigen der id und seiner position in der Liste, so etwas wie:
Zum abrufen der position der Ansicht, Sie würde so etwas machen:
Einen Punkt zu beachten, ist, dass Sie brauchen, um einen Verweis auf die Ansicht, deren position Sie abrufen möchten. Wie bekommst du halt die Ansicht Referenz ist abhängig von Ihrem speziellen Fall.
Nicht. Je nachdem, welchen adapter Sie verwenden, um wieder Ihre
ListView
die id und position kann der gleiche sein (habe ich noch nicht angeschautBaseAdapter
Unterklassen, so kann ich nicht sicher sagen). Wenn Sie Blick auf den Quellcode für ArrayAdapter Sie werden sehen, dassgetItemId
eigentlich gibt die position des Objekts in den adapter. Wenn die position und die id gleich sind, gibt es keine Notwendigkeit zu verwenden, um die anderen. Ansonsten brauchen Sie nur Suche den adapter für das Objekt suchen - entweder mithilfe der position oder der id - und finden Sie die anderen Wert.Wenn das, was Sie sprechen, das ist immer Objekte, die mit einigen einzigartigen Schlüssel, d.h. Sie definieren, - die getan werden kann. Was Sie tun müssen, ist richten Sie Ihren adapter zu nehmen
HashMap
statt einerArrayList
oder regelmäßigeList
von Objekten. Dann erstellen Sie Ihre eigene Methode zum finden von Schlüssel, indem Sie einfach ziehen diesen Wert von derHashMap
.ist es zu spät zu Antworten, aber für die Leistung...
wenn Sie zum Beispiel listview und Sie möchten Holen Sie sich id mit Klick-listener können Sie es durch >>