Autore Topic: [Newbie] ListView popolato da campi di una struct  (Letto 776 volte)

Offline MattMarked

  • Nuovo arrivato
  • *
  • Post: 4
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Nokia Xperia Mini Pro
  • Sistema operativo:
    Ubuntu 12.04
[Newbie] ListView popolato da campi di una struct
« il: 06 Dicembre 2012, 01:32:00 CET »
0
Salve a tutti, premetto che si tratta di un quesito da pivellino  ma è la prima applicazione con cui mi sto dilettando e non riesco a capire cosa sbaglio.

Vorrei popolare una listview con gli elementi di una struct avente nei propri campi stringhe e numeri.
L'activity in questione dovrebbe venir popolata alla creazione facendo così:

Codice (Java): [Seleziona]
public void onCreate(Bundle savedInstanceState)
        {
                super.onCreate(savedInstanceState);
                setListAdapter(new ArrayAdapter<Cibo>(this, android.R.layout.simple_list_item_1, android.R.id.text1, Cibo.DB));
        }

In cui l'ultimo campo Db è così composto
Codice (Java): [Seleziona]
public static final Cibo[] DB = new Cibo[]
        {
                new Cibo("Caffè", "Bevande", "Analcoliche", "Bar", 10),
                new Cibo("Pizza Margherita", "Alimenti", "Pasta e Farinacei", "Pizzeria", 900)
        };

Solo che quando vado a simulare sul device l'esecuzione, all'apertura i due campi della listview contengono una info di questo tipo
it.devapp.listview.Cibo@40d40a40

Capisco che essenzialmente sbaglio l'ultimo campo del setListAdapter ma anche dopo qualche prova non sono riuscito a capire cosa metterci. La struttura ovviamente ha i getter per ogni campo.
Vi ringrazio in anticipo, dovrebbe essere una cosa da niente per chi lo sa.

jfrankie

  • Visitatore
Re:[Newbie] ListView popolato da campi di una struct
« Risposta #1 il: 07 Dicembre 2012, 09:44:31 CET »
0
Il problema è che stampa l'oggetto e non il valore. Dovresti posta come è fatta la tua classe Cibo ma dubito che così funzioni. Anche perchè non riesco a capire cosa vorresti stampare. http://www.survivingwithandroid.com/2012/10/android-listviewarrayadapter-and.html oppure http://www.survivingwithandroid.com/2012/10/android-listview-custom-adapter-and.html

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:[Newbie] ListView popolato da campi di una struct
« Risposta #2 il: 07 Dicembre 2012, 14:56:52 CET »
0
Come ti ha suggerito jfrankie devi crearti un Adapter personalizzato.
Anche qui sul forum abbiamo un tutorial:

[medio] ListView con layout personalizzato tramite un custom ArrayAdapter - Android Developers Italia


PS: Quella che tu chiami "struct" in realtà di chiama "classe".

Offline MattMarked

  • Nuovo arrivato
  • *
  • Post: 4
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Nokia Xperia Mini Pro
  • Sistema operativo:
    Ubuntu 12.04
Re:[Newbie] ListView popolato da campi di una struct
« Risposta #3 il: 07 Dicembre 2012, 15:54:12 CET »
0
Vi ringrazio entrambi per le risposte, arrivo dal C e faccio ancora confusione con i termini e con la programmazione ad oggetti. Adesso mi studio il tutorial sull'adapter personalizzato.
In ogni caso comunque la mia intenzione era di stampare il primo campo String di ognuno dei miei oggetti di tipo Cibo. Penso che guardando il tutorial da voi elencatomi dovrei chiarire i miei dubbi.
Ah e scusatemi, non avevo trovato quel tutorial perché non avevo focalizzato che il mio problema fosse configurarmi un adapter su misura.

Grazie ancora ragazzi