Visualizzazione risultati 1 fino 3 di 3

Discussione: [JAVA] new String[] e List<String>

  1. #1
    L'avatar di radiodelmomento
    radiodelmomento non è connesso AlterGuru
    Data registrazione
    09-09-2010
    Messaggi
    1,075

    Question [JAVA] new String[] e List<String>

    Ciao a tutti
    Ieri ho iniziato a programmare JAVA (per Android), e devo dire che mi piace, anche se mi sta facendo scervellare non poco
    Ho un piccolo problemino...

    Devo creare questo:
    Codice:
    listview.setAdapter(new yourAdapter(this, new String[] { "data1","data2" }));
    Il problema è che non so come creare quell'array "new String[]{...}" dinamicamente!
    Attualmente utilizzo questo codice:
    Codice:
    String[] citazioni = getResources().getStringArray(R.array.citazioni);
    List<String> CitazioniOutput = new ArrayList<String>();
    for (String value : citazioni) {
    	CitazioniOutput.add(value);
    }
    Quest'ultimo codice funziona alla perfezione, il problema è che non so come sostituirlo al precedente.
    Ho provato:
    Codice:
    listview.setAdapter(new yourAdapter(this, CitazioniOutput));
    //e
    ArrayAdapter<String> adapter= new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,CitazioniOutput);
    listview.setAdapter(new yourAdapter(this, adapter));
    Ma non è cambiato nulla... mi da ugualmente errore (The constructor is undefined).
    Come posso risolvere (magari una spiegazione/guida linkata non ci starebbe male )?

    Grazie mille anticipatamente

  2. #2
    L'avatar di javascripter
    javascripter non è connesso Moderatore
    Data registrazione
    14-02-2010
    Messaggi
    1,114

    Predefinito

    Sposto il topic in una sezione più appriopriata.

    Comunque, non è necessario usare una lista.
    Puoi benissimo usare:
    Codice:
    String[] citazioni = getResources().getStringArray(R.array.citazioni);
    listview.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, citazioni));
    La documentazione ufficiale di android è abbastanza chiara: http://developer.android.com/referen...ayAdapter.html
    vedi tra i costruttori:
    Codice:
    ArrayAdapter(Context context, int resource, T[] objects)
    ArrayAdapter(Context context, int resource, int textViewResourceId, List<T> objects)
    L'errore che ricevi credo sia dovuto all'implementazione della classe yourAdapter, come l'hai dichiarata?
    Non penso proprio che prenda in ingresso un ArrayAdapter (laddove sicuramente la estende)
    Ultima modifica di javascripter : 22-01-2014 alle ore 18.55.47

  3. #3
    L'avatar di radiodelmomento
    radiodelmomento non è connesso AlterGuru
    Data registrazione
    09-09-2010
    Messaggi
    1,075

    Predefinito

    Il problema era che dovevo aggiungere ad ogni risultato un valore, quindi dovevo per forza eseguire un ciclo costruendo una lista (da quel che ho capito).
    Comunque, ho risolto trasformando la lista in array:
    Codice:
    listview.setAdapter(new yourAdapter(this, CitazioniOutput.toArray(new String[CitazioniOutput.size()])));
    Grazie

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •