Android - Listenansicht erhalten Artikel Ansicht von Position

? alashow @ | Original: StackOverFlow
---

Ich habe Listview mit benutzerdefinierten Adapter ( Basisteil ) . Ich möchte Blick von Listview von Position zu bekommen. Ich habe versucht, mListView.getChildAt(position), aber es funktioniert nicht. Wie bekomme ich Artikel Ansicht von Position ?

---

Top 5 Antwort

1Matt Twig @

Sie können nur dann sichtbar, Blick vom Listview zu bekommen, weil Reihe Blick in Listview sind wiederverwendbar. Wenn Sie mListView.getChildAt(0) erhalten Sie erste sichtbare Ansicht . Diese Ansicht wird mit Element aus Adapter an der Position verbunden mListView.getFirstVisiblePosition() .

2The Metal Beard @

Es gibt keine Möglichkeit, das zu tun . Der einzige Weg, um das Aussehen / was auch immer der Reihe Aussicht, wenn die Listview gezogen zu ändern ist, etwas zu verändern in der Datenlistenansichtzieht aus ( das Array von Objekten, die in Ihrem Adapter übergeben wird ), und stellen Sie sicher, dass für die in Ihrem Konto getView ( ) Funktion, dann neu zeichnen das Listview durch den Aufruf

notifyDataSetChanged();
3VVB @

Use this :

public View getViewByPosition(int pos, ListView listView) {
    final int firstListItemPosition = listView.getFirstVisiblePosition();
    final int lastListItemPosition = firstListItemPosition + listView.getChildCount() - 1;

    if (pos < firstListItemPosition || pos > lastListItemPosition ) {
        return listView.getAdapter().getView(pos, null, listView);
    } else {
        final int childIndex = pos - firstListItemPosition;
        return listView.getChildAt(childIndex);
    }
}