2011-12-17 5 views
0

J'ai une activité android qui étend ListActivity. Chaque fois que vous appuyez sur les éléments de la liste, l'activité doit changer d'état (nouvel adaptateur de liste) et recharger. Pour ce faire, cliquez sur Je crée un nouvel ArrayAdapter pour la liste et définissez-le, mais au lieu de réinitialiser la liste des éléments, les nouveaux éléments sont simplement ajoutés aux anciens. Comment puis-je effacer les anciens éléments de la liste et en définir de nouveaux?Recharger l'activité android sans le terminer

private void update() { 
    if (flag == null) { 
     //do nothing 
    } else { 
     list_items = new Vector(); 
     list_items.addAll(getNewListItems()); 
    } 
    String[] items = new String[list_items.size()]; 
    for (int i=0; i<list_items.size(); i++) 
     items[i] = list_items.get(i).toString(); 
    setListAdapter(new ArrayAdapter<String>(this, R.layout.menu_layout, R.id.label, items)); 
} 
+0

votre code postal ne peut pas s'il vous plaît –

+0

vous suffit d'utiliser adapter.notifyDataSetChanged ( – MKJParekh

Répondre

0

Faire un adaptateur personnalisé, puis

Vous pouvez simplement supprimer les anciens articles ajouter vos nouveaux articles dans votre String[] items.

Et il suffit d'appeler notifyDataSetChanged() à l'adaptateur ...

Ensuite, vous ne devez pas appeler à chaque fois un nouvel adaptateur ..

+0

en fait chaque fois que je crée un nouvel adaptateur, est-ce faux? Quoi qu'il en soit, j'ai essayé d'appeler notifyDataSetChanged() dans la méthode getView de l'adaptateur personnalisé et cela n'a pas aidé - les anciens éléments sont toujours affichés – Sergey

+0

Oui, chaque fois que la création d'une nouvelle carte est fausse, vous devez appeler notifyDataSetChanged() après avoir créé votre new String [] éléments array (remove old) pas dans getView() .. – user370305

0

Vous devez utiliser notifyDataSetChanged() sur votre carte, puis elle rechargera automatiquement tous les éléments de la liste.

Vous pouvez trouver plus d'explications à partir de 17h00 et dans this Google IO vidéo

Questions connexes