Autore Topic: Aggiornare una listview con file xml  (Letto 721 volte)

Offline Max

  • Nuovo arrivato
  • *
  • Post: 34
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Ace
Aggiornare una listview con file xml
« il: 23 Ottobre 2012, 11:30:45 CEST »
0
Salve a tutti non so se mi trovo nella sezione giusta, se cosi non fosse mi scuso, vengo al punto.

Ho una listview popolata da un xml remoto costruita su un adpater in questo caso baseadpter.

urlxml --> parser ---> adapter ---> listview

Quando modifico il file xml (anche a mano) sul server cerco di refreshare la listview con la tecnica "pull to refresh"

ma non si modifica nulla. Che passaggi devo fare? riscaricarmi il file xml e ripetere tutto?


EDIT
Ora succede questo:

1) ho 2 righe nella listview
2) modifico l'xml sul server
3) ottengo 4 righe le 2 vecchie e le due nuove
« Ultima modifica: 23 Ottobre 2012, 13:07:39 CEST da Max »

Offline MarcoDuff

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1073
  • Respect: +202
    • Google+
    • marcoduff
    • Mostra profilo
    • MarcoDuff's Blog
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    MarcoDuff
  • Sistema operativo:
    Windows 7
Re:Aggiornare una listview con file xml
« Risposta #1 il: 23 Ottobre 2012, 15:29:09 CEST »
0
Posta il codice, probabilmente non pulisci la lista prima di ripopolarla.

Offline Max

  • Nuovo arrivato
  • *
  • Post: 34
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Ace
Re:Aggiornare una listview con file xml
« Risposta #2 il: 23 Ottobre 2012, 15:42:34 CEST »
0
no infatti non lo faccio che metodo uso?

Codice (Java): [Seleziona]
public class Lista_articoli_categoria extends Activity {
       
        ArrayList<String> images = new ArrayList<String> ();
        ArrayList<String> title = new ArrayList<String> ();
        ArrayList<String> author = new ArrayList<String> ();
        ArrayList<String> description = new ArrayList<String> ();
       
        private LazyAdapter adapter;
    private RefreshableListView mListView;
   
    Parser task = new Parser();
   
        @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.elenco_articoli);
       
                try {

                        task.execute();
                        final RefreshableListView list = (RefreshableListView) findViewById(R.id.refreshablelistview);    
                        adapter= new LazyAdapter(this, fill_data(task.get()));
                        mListView = list;      
                list.setAdapter(adapter);
               
                        list.setOnUpdateTask(new OnUpdateTask() {
                        public void updateBackground() {
                        refresh_data();

                                try {
                                                Thread.sleep(1500);
                                        } catch (InterruptedException e) {
                                                e.printStackTrace();
                                        }
                        }

                        public void updateUI() {
                                        adapter.notifyDataSetChanged();
                        }

                        public void onUpdateStart() {
                                       
                        }

                        });

                } catch (InterruptedException e) {
                                e.printStackTrace();
                } catch (ExecutionException e) {
                                e.printStackTrace();
                }
 
}
       
    @Override
    public void onDestroy()
    {
        mListView.setAdapter(null);
        super.onDestroy();
    }

        public ArrayList<ArrayList<String>> fill_data(ArrayList<Struttura_rss> Datidaxml){
               
            ArrayList<ArrayList<String>> rec = new ArrayList<ArrayList<String>> ();
           
                   for(int i=0;i<Datidaxml.size();i++){
                                        Struttura_rss p = Datidaxml.get(i);
                                        title.add(p.getTitle());
                                        images.add(p.getImage());
                                        description.add(p.getArticolo());
                                        author.add(p.getAuthor());
                        }                      
                       
                        rec.add (title);
                        rec.add (images);      
                        rec.add (description);
                        rec.add (author);      
   
                        return rec;
        }
       
       
       
        public void refresh_data(){
                       
                try {
                       
                        Parser task = new Parser();
                        task.execute();
                        adapter= new LazyAdapter(this, fill_data(task.get()));
                       
                        } catch (InterruptedException e) {
                                e.printStackTrace();
                        } catch (ExecutionException e) {
                                e.printStackTrace();
                        }
                                       
        }

       
}
« Ultima modifica: 23 Ottobre 2012, 15:48:35 CEST da Max »

Offline Max

  • Nuovo arrivato
  • *
  • Post: 34
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Ace
Re:Aggiornare una listview con file xml
« Risposta #3 il: 23 Ottobre 2012, 17:05:46 CEST »
0
niente da fare, riesco modificando l'xml ad aggiornare ma non pulisce la listview precedente

Offline MarcoDuff

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1073
  • Respect: +202
    • Google+
    • marcoduff
    • Mostra profilo
    • MarcoDuff's Blog
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    MarcoDuff
  • Sistema operativo:
    Windows 7
Re:Aggiornare una listview con file xml
« Risposta #4 il: 24 Ottobre 2012, 13:40:29 CEST »
0
Per pulire la lista usa semplicemente il metodo clear!