Android - listview ottenere vista elementi per posizione

? alashow @ | Original: StackOverFlow
---

Ho listview con adattatore personalizzato ( adattatore di base ) . Voglio vista dalla lista per la posizione . Ho provato mListView.getChildAt(position), ma non sta funzionando . Come posso ottenere vista dell'elemento da posizione?

---

Top 5 Risposta

1Matt Twig @

È possibile ottenere visibili solo Vista dalla ListView perché viste riga in ListView sono riutilizzabili . Se si utilizza mListView.getChildAt(0) si ottiene prima vista visibile . Questo punto di vista è associata con la voce da adattatore in posizione mListView.getFirstVisiblePosition() .

2The Metal Beard @

Non c'è modo di farlo . L'unico modo per cambiare l' apparenza / qualcosa di opinioni fila una volta che il controllo ListView è disegnato è quello di cambiare qualcosa nel ListView dati attinge ( la matrice di oggetti che è passato nel vostro Adapter) e fare in modo di spiegare che nel vostro GetView ( funzione ), quindi ridisegnare il ListView chiamando

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);
    }
}