2014-11-19 15 views
5

Mi sono guardato intorno un po 'ma non ho trovato una risposta vera a questa domanda. Sto appena iniziando a conoscere gli adattatori Android e ho avuto alcune domande. In primo luogo, devo chiamare getView() manualmente o viene chiamato automaticamente? Se sì, quando viene effettivamente chiamato? Infine, ho notato che c'è un parametro per "posizione" nella lista. È qualcosa che devo incrementare attraverso l'iterazione o viene incrementato internamente in qualche modo?Per un adattatore ListView, come viene chiamato getView()?

grazie!

+0

Ti consiglio di seguire questo tutorial https://github.com/codepath/android_guides/wiki/Using-an-ArrayAdapter-with-ListView.E 'quello che mi ha fatto davvero fare clic su Android listviews – rperryng

risposta

3

In primo luogo, è necessario chiamare getView() manualmente o viene chiamato automaticamente ?

No, viene chiamato automaticamente.

Se sì, quando viene effettivamente chiamato?

Si chiamerà quando l'utente fare qualcosa per la vostra ListView, come quando il ListView la visualizzazione di un nuovo elemento quando lo scorrimento di esso.

Infine, ho notato che c'è un parametro per "posizione" nell'elenco . E 'qualcosa che devo incrementare attraverso l'iterazione o viene incrementato internamente in qualche modo?

No, sarà automaticamente la posizione dell'elemento della lista. Lo stesso vale per altri parametri come (il predefinito) View convertView, sarà il View dell'elemento corrente (riga di ListView).

+0

il parametro è "int position" come getView (posizione finale int, Visualizza convertView, ViewGroup parent) quindi se definisco get view, è posizionare l'indice per il punto da guardare nella mia lista o array? – Will

0

Fa parte di come funziona l'adattatore. Non è necessario chiamare nessuno di questi metodi, poiché è chiamato implicitamente tramite Listview.

Date un'occhiata a questo,

http://www.vogella.com/tutorials/AndroidListView/article.html

E 'un buon articolo su come utilizzare un controllo ListView.

+0

Ho dato un'occhiata a questo, ma ero principalmente curioso di sapere da dove provenisse il parametro int position e come è stato incrementato. Mi dispiace non posso votare con il mio rappresentante :( – Will

0

L'adattatore è un tipo di connessione tra AdapterView (ListView, GridView ecc.) E le matrici di dati. Adapter genera vies che verrebbero visualizzati in AdapterView. Quindi, quando ListView deve visualizzare gli elementi, prima chiama il metodo getCount() dell'adattatore, dopo alcune misurazioni effettua alcune chiamate getView() per riempire la parte visibile di listView con gli elementi. E poi durante lo scorrimento di ListView chiamerà getView() dall'adattatore per le posizioni successive. È importante non fare alcuna ipotesi sull'ordine delle chiamate getView() - non è obbligatorio che listview chiamerà getView() nello stesso ordine dei dati ordinati. Quindi non devi preoccuparti dell'incremento dell'indice di posizione - questo argomento è usato per situazioni, per esempio, quando hai bisogno di visualizzare due sfondi diversi per le righe pari e dispari - e puoi usare la posizione per prendere una decisione colore che devi usare C'è una buona presentazione sull'anatomia dello ListView

Problemi correlati