Visualizzazione stampabile
-
Chiarimento ArrayAdapter
Ciao a tutti,
sto leggendo il libro di Carli e sto provando a scivere un pò codice elementare ma per adesso funzionante.
Mentre studiavo gli Arrayadapter mi sono soffermato su una questione che non mi tornava molto chiara.
Il costruttore di un ArrayAdapter può essere, tra gli altri:
ArrayAdapter(Context context, int textViewResourceId, T[] objects)
o
ArrayAdapter(Context context, int resource, int textViewResourceId, T[] objects)
da quello che ho capito il secondo lo uso se ho customizzato la row all'interno della mia listview.
quello che non mi è chiaro è, nel secondo caso, il riferimento al textViewResourceId.
cioè se la mia row personalizzata ha, per esempio una immagine, 2 textview e una checkbox, in quel riferimento che ci devo mettere?
spero di essermi spiegato in maniera più o meno comprensibile.
grazie a tutti
-
devi mettere il riferimento alla textview dove vuoi mettere l'informazione.
se vuoi riempire un layout più complesso con più informazioni, non solo quelle da un array di stringhe devi farti un adapter personalizzato dove specifichi come costruire la View che ti restituisce a partire dalle informazioni.
-
Grazie per la risposta!
Quello che dici mi è chiaro.
Nell'esempio studiato sul libro di Carli, però, fa proprio l'esempio di una row customizzata in cui ci sono 2 textview (oltre a due label). ovviamente fa vedere anche la customizzazione dell'ArrayAdapter e usa il costruttore
ArrayAdapter<CustomItem> arrayAdapter = new ArrayAdapter<CustomItem>(
this, R.layout.custom_row, R.id.firstnameLabel, createItems())
dove R.id.firstnameLabel è l'Id della prima textview.
Questo significa che come terzo parametro, ovviamente in casi come questo,
devo inserire il riferimento alla prima textview della via riga customizzata?
grazie di nuovo
-
in casi come quelli il parametro perde di significato.
sei tu che costruisci manualmente la View ed è tua responsabilità cosa va in una textview piuttosto che un altra.
prova a mettere R.id.lastnameLabel e vedrai che ottieni lo stesso risultato