Autore Topic: aggiornare un ListView dinamicamente  (Letto 580 volte)

adcarang

  • Visitatore
aggiornare un ListView dinamicamente
« il: 23 Aprile 2012, 18:52:56 CEST »
0
Salve a tutti;
Devo aggiornare una Listview dinamicamente,
solo che, ogni volta che cambia  il valore di una riga la Listview non aggiorna solo quella riga ma tutte le righe
il difetto si nota quando il numero di righe della Listview supera le dimensioni dello schermo

quest è il codice della routine di aggiornamento:
Codice (Java): [Seleziona]
 public   void statoListView(String stato) {
         if (!stato.equals(oldStato)){
                if (debug)
                  Toast.makeText(ClientActivity.this, "statoListView " , Toast.LENGTH_SHORT).show();
                arrayOfDescrizioni = aggiorna(stato);
               
                arrayOfDescrizioniAdapter=this.configArrayAdapter();
            ListView DescrizionetView=(ListView)findViewById(R.id.listViewOut);                    
            DescrizionetView.setAdapter(arrayOfDescrizioniAdapter);
           
           
            oldStato = stato;
           
               
       
            //registerForContextMenu(DescrizionetView);
         }
                       
}  


ho modificato il precedente codice utilizzando  notifyDataSetChanged();  ,Ma senza  risultato la Listview non si aggiorna per niente.
Codice (Java): [Seleziona]
 public   void statoListView(String stato) {
         if (!stato.equals(oldStato)){
                if (debug)
                  Toast.makeText(ClientActivity.this, "statoListView " , Toast.LENGTH_SHORT).show();
                arrayOfDescrizioni = aggiorna(stato);
               
                //arrayOfDescrizioniAdapter=this.configArrayAdapter();
            ListView DescrizionetView=(ListView)findViewById(R.id.listViewOut);                    
            DescrizionetView.setAdapter(arrayOfDescrizioniAdapter);
           
            notifyDataSetChanged();
            oldStato = stato;
           
               
       
            //registerForContextMenu(DescrizionetView);
         }
                       
}  

Spero di essere stato chiaro
« Ultima modifica: 23 Aprile 2012, 22:12:47 CEST da adcarang »

Offline Nicola_D

  • Moderatore
  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:aggiornare un ListView dinamicamente
« Risposta #1 il: 23 Aprile 2012, 23:39:36 CEST »
0
un veloce workaround che puoi usare è tenerti l'indice di selezione della riga attuale, e poi fare un setSelection.
in questo tutorial se non sbaglio l'ho usato:
[facile] Endless List, Una lista senza fine - Android Developers Italia
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia