Adaptateur de liste de mise à jour Android Onresume
-
14-11-2019 - |
Question
J'utilise un adaptateur de liste pour afficher différents magasins, lorsque quelqu'un sélectionne un magasin, il les amène à une nouvelle activité où il peut ajouter le magasin au favori sur cet écran.
Il y a un bouton de retour sur ces appels finish();
Cela remonte à l'écran avec la ListView.
Maintenant, le problème est que la ListView n'est pas mise à jour (c'est-à-dire ne montre pas que le magasin est déjà ajouté au favori). J'ai essayé ce code mais pas de chance:
@Override
public void onResume() {
super.onResume();
list.setAdapter(null);
updateMyList();
adapter=new LazyAdapter(this, ((String[])names.toArray(new String[0])),
((String[])status.toArray(new String[0])));
list.setAdapter(adapter);
}
updateMyList()
Appelle l'API du serveur et met à jour les noms et les tableaux d'état.
Avec ce code, la liste ne met pas vraiment à jour ...
La solution
Vous devez setadapter dans votre onCreate()
seulement, à l'intérieur onResume()
Tu devais juste appeler adapter.notifyDataSetChanged()
avec la nouvelle collection de données. Cela actualisera votre ListView avec la nouvelle collection de données.
Autres conseils
Utilisez ce code:
myList.clear();
myList.add("your array list items");
setListAdapter(adapter);
adapter.notifyDataSetChanged();
Je crois que ceci vous aidera.
Merci....
Tout d'abord, vous avez besoin d'ajouter la liste des magasins à l'arraylist, soumettez ceci liste des tableaux au ADAPTATEUR puis ajoutez-le à la vue de la liste
list.setAdapter(adapter);
Il affichera la liste des magasins; prendre onListItemClick
cliquez là-bas, vous obtiendrez listItem
Identifiant; En utilisant l'ID de l'élément de liste, vous pouvez donner une telle intention
Intent intent=new Intent(getApplicationContext(),------.class);
startActivityForResult(intent);
Suivre une classe de méthodes Java Bean / Setter et Getter; Prenez la méthode Getter comme statique, définissez le nom du magasin ce que vous avez créé dans l'activité enfant; Méthode de remplacement appelé onBackPressed()
; À l'intérieur de cette méthode Écrivez
setResult(RESULT_OK);
finish();
prendre une méthode onActivityForResult()
dans la classe parent; À l'intérieur de cette méthode
arraylist.add(javabeanClassname.getName());
Ajoutez cette ArrayList au Adapter
Et écrivez le code
list.setAdapter(adapter);
Avant d'ajouter une nouvelle vue pour ListView supprimer toute la vue précédente
listView.removeAllViews();
puis ajoutez la classe d'adaptateur avec de nouvelles valeurs. Une chose s'assure que vos valeurs sont mises à jour pendant votre retour de la deuxième activité, et ce code appelle.