Domanda

Ho provato ad aggiungere questi punti di vista per visualizzare la lista utilizzando questo tipo di fabbrica ma ogni volta che provo e aggiungi il in vista di una ListActivity, si tratta con nulla. Che cosa sto facendo di sbagliato? Ho impostato le mie opinioni lista in questo modo:

 List<View> views = new ArrayList<View>();
 for(int x =0;x<tagg_views.size();x++){
      lv.addHeaderView(views.get(x));
 }
È stato utile?

Soluzione

Sembra che si sta tentando di aggiungere il numero x di intestazioni al vostro ListView. Questo non ha senso.

Un ListView deve contenere un numero x di copie della stessa vista, con informazioni diverse su ogni riga.

Ciao ListView dà un buon esempio di corretta l'utilizzo di un controllo ListView.

Altri suggerimenti

perché vuoi aggiungere le viste alla lista da soli? Mi raccomando utilizzando qualsiasi tipo di apropriate adattatore per la Lista. L'adattatore si occuperà della creazione e il riciclaggio di punti di vista, mentre l'utente sta scorrendo ecc Se si utilizza un adattatore si è scoraggiato per salvare i riferimenti alla vista da soli, come si sta facendo nella lista viste.

Il addHeaderView metodo che si sta utilizzando è fatto per un singolo colpo di testa alla lista che sempre appare in cima alla lista. Questo significa chiamare in un ciclo non avranno un risultato ragionevole.

Cerca nel esempio helloListView Mayra accenna a capire come una lista in Android sta lavorando. Per vedere come funziona un listadapter personalizzato hanno un'occhiata a questo Tutorial sembra essere molto promettente, nonostante la formattazione del codice cattivo.

Un ListView è collegato con e adattatore. L'adattatore è responsabile per i dati visualizzati nel ListView. Tener conto che internamente ListView crea un pool di itmes (o un pool per ogni tipo di elemento che può essere visualizzato nel tuo caso).

Per questo scopo le vostre esigenze di adattamento ad attuare le seguenti modalità:

  • int getItemViewType (int posizione): Prendi il tipo di visualizzazione che verrà creato da GetView (int, Vista, ViewGroup) per l'elemento specificato. Quindi è necessario per identificare l'utente tipo.
  • int getViewTypeCount (): restituisce il numero di tipi di viste che verranno creati da GetView (int, Vista, ViewGroup). Questo è usato per creare un pool per ogni tipo di elemento.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top