android - listview ruft die Artikelansicht nach Position ab
Ich habe listview-Steuerelement mit benutzerdefinierten adapter (Basis-adapter). Ich möchte anzeigen von listview-position. Ich habe versucht mListView.getChildAt(position)
, aber es funktioniert nicht. Wie kann ich die item-Ansicht von der position?
InformationsquelleAutor der Frage alashow | 2014-07-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden :
InformationsquelleAutor der Antwort VVB
Können Sie nur sichtbar Ansicht von ListView, weil die Zeile Ansichten in der ListView sind wiederverwendbar. Wenn Sie
mListView.getChildAt(0)
erhalten Sie erste sichtbare Ansicht. Diese Ansicht ist im Zusammenhang mit der Position von adapter auf positionmListView.getFirstVisiblePosition()
.InformationsquelleAutor der Antwort Matt Twig
Bevorzugte Weg, um das Aussehen zu ändern/was auch immer von Zeile schaut mal das ListView-Steuerelement gezeichnet wird, etwas zu ändern, in der Daten ListView zieht aus (array von Objekten übergeben wird, in den Adapter) und stellen Sie sicher, zu berücksichtigen, dass in Ihrem getView () - Funktion, dann neu zeichnen die ListView aufrufen
EDIT: es gibt zwar einen Weg, dies zu tun, wenn Sie müssen dies tun, sind die Chancen, etwas falsch zu machen. Zwar sind einige Grenzfälle, woran ich denken kann, in der Regel mit
notifyDataSetChanged()
- und anderen integrierten Mechanismen ist ein Weg zu gehen.EDIT 2: Einer der häufigsten Fehler, die Menschen machen, ist zu versuchen, um kommen mit Ihre eigenen Art und Weise zu reagieren, um Benutzer anklicken/auswählen einer Zeile in der Listenansicht, wie in einem der Kommentare zu diesem post. Gibt es eine vorhandene Möglichkeit, dies zu tun. Hier ist, wie:
ListView hat eine Menge build-in-Funktionalität, und es gibt keine Notwendigkeit, das Rad neu zu erfinden für einfachere Fälle. Seit ListView erstreckt AdapterViewkönnen Sie die gleichen Hörer, wie OnItemClickListener wie im obigen Beispiel.
InformationsquelleAutor der Antwort C0D3LIC1OU5
InformationsquelleAutor der Antwort Mohamed Ayed
InformationsquelleAutor der Antwort arjun