Autore Topic: ArrayList ListView!  (Letto 379 volte)

Offline Marcox

  • Utente junior
  • **
  • Post: 56
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC wildfire
  • Sistema operativo:
    Windows XP
ArrayList ListView!
« il: 05 Maggio 2013, 22:42:11 CEST »
0
come faccio ad avere accesso all' ArrayList di una listView dal suo adapter?

Offline rs94

  • Utente normale
  • ***
  • Post: 227
  • Respect: +21
    • Mostra profilo
  • Dispositivo Android:
    Sony Ericsson Xperia Arc S
  • Sistema operativo:
    Windows 8
Re:ArrayList ListView!
« Risposta #1 il: 05 Maggio 2013, 23:55:00 CEST »
0
Usa un custom adapter e quindi definisci una funzione che ti restituisce l'arraylist.

Quindi, dalla tua activity, fai listview.getadapter e fai il cast al tuo custom adapter.

Codice (Java): [Seleziona]
CustomAdapter adapter = (CustomAdapter)listview.getadapter();
ArrayList<String> arraylist = adapter.getArrayList(); //metodo che hai definito tu nella classe CustomAdapter


Non so se sia il metodo migliore, però a me funziona :D
L'unica certezza è il dubbio.
Dubitare di se stessi è il primo segno di intelligenza.

Offline Marcox

  • Utente junior
  • **
  • Post: 56
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC wildfire
  • Sistema operativo:
    Windows XP
Re:ArrayList ListView!
« Risposta #2 il: 06 Maggio 2013, 07:51:27 CEST »
0
Forse non mi sono spiegato bene...  :-) il problema é proprio cosa dovrei scrivere in quel metodo...
quello che voglio fare e fare in modo che se viene premuta una certa view in una qualsiasi riga della lista, viene creata una nuova riga in una certa posizione... Quindi dato che il metodo onclick lo devo mettere Nell Adapter, li quindi mi servirà l arraylist per creare la nuova riga...

Offline rs94

  • Utente normale
  • ***
  • Post: 227
  • Respect: +21
    • Mostra profilo
  • Dispositivo Android:
    Sony Ericsson Xperia Arc S
  • Sistema operativo:
    Windows 8
Re:ArrayList ListView!
« Risposta #3 il: 06 Maggio 2013, 13:19:13 CEST »
0
Non serve metterlo nell'adapter....

Supponendo che tu nella tua activity abbia un arraylist di stringhe

Codice (Java): [Seleziona]
ArrayList<String> arraylist = new ArrayList<String>();
arraylist.add("ELEMENTO 1");
arraylist.add("ELEMENTO 2");
arraylist.add("ELEMENTO 3");

quindi crei l'adapter (di qualunque tipo esso sia, ad esempio arrayadapter)

Codice (Java): [Seleziona]
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item,android.R.id.text1,arraylist);
quindi lo assegni alla lista

Codice (Java): [Seleziona]
lista.setAdapter(adapter);
infine assegni un nuovo listener alla tua lista

Codice (Java): [Seleziona]
lista.setOnItemClickListener(new OnItemClickListener() {

                        @Override
                        public void onItemClick(AdapterView<?> adview, View view, final int pos,long arg3)
                        {
                                  //aggiungo un elemento nell'arraylist subito dopo la riga cliccata
                                  arraylist.add(pos+1,"NUOVO ELEMENTO");
                                  //notifico alla lista che deve aggiornarsi, deve cioè guardare se ci sono nuovi elementi e mostrarli
                                  adapter.notifyDataSetChanged();
                        }
});
L'unica certezza è il dubbio.
Dubitare di se stessi è il primo segno di intelligenza.

Offline Marcox

  • Utente junior
  • **
  • Post: 56
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC wildfire
  • Sistema operativo:
    Windows XP
Re:ArrayList ListView!
« Risposta #4 il: 06 Maggio 2013, 14:21:48 CEST »
0
No... Non é la riga che deve essere cliccata ma la view nella riga... Es. In ogni riga ho 3 imageview...