Pierre87 Posté(e) 21 février 2010 Share Posté(e) 21 février 2010 Mon Activity ne contient qu'une ListView (qui affiche des String). J'ai donc choisi de prendre une ListActivity J'ai une ArrayList (de String), donc le contenu change fréquemment (en dehors du thread UI). J'ai donc pris un ArrayAdapter pour faire ça : this.list = new ArrayList(); this.adapter = new ArrayAdapter(this, R.layout.simple_list_item_1, this.list); this.setListAdapter(this.adapter); 2 solutions s'offrent à moi pour modifier les données dans ma ListView : - "this.adapter.add("Time : " + System.currentTimeMillis());" - changer dans mon ArrayList, puis notifier l'Adapter via "this.adapter.notifyDataSetChanged();" Problème : toute intervention sur l'Adapter (changement direct, ou notification) nécessite d'être dans le Thread graphique. Pour moi, ce n'est pas un problème, ça peut se résoudre par : - Activity.runOnUIThread() - View.post() - Un Handler Quelle est la meilleure méthode ? Il n'existe pas une méthode plus simple ? Merci ! Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Cyril Mottier Posté(e) 21 février 2010 Share Posté(e) 21 février 2010 Déjà tu peux activer une option sur ArrayAdapter qui fait le notify tout seul dès que tu fait un add (setNotifyOnChange). Ensuite tu fais des post avec Handler ou des View.post() car ça change rien (y'a pas une méthode mieux que l'autre). Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Pierre87 Posté(e) 21 février 2010 Auteur Share Posté(e) 21 février 2010 Merci bien ! Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Rejoignez la conversation
Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.