Android Liste actualisation de la vue
J'ai une ListView qui me montre des données par l'intermédiaire d'un tableau (qui est dans une autre classe et je suis accéder par le biais d'un objet).
Chaque fois que je supprime un élément de la liste par le biais du menu contextuel, la liste n'est pas rafraîchissant, mais l'élément est supprimé de la matrice. Comment puis-je actualiser la liste pour l'afficher?
Code:
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
if (v.getId()==R.id.mainListView) {
AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo)menuInfo;
post=info.position;
menu.setHeaderTitle(stocks[info.position]);
String[] menuItems = stt;
for (int i = 0; i<menuItems.length; i++) {
menu.add(Menu.NONE, i, i, menuItems[i]);
}
}
}
@Override
public boolean onContextItemSelected(MenuItem item) {
AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo)item.getMenuInfo();
int menuItemIndex = item.getItemId();
String[] menuItems = stt;
String menuItemName = menuItems[menuItemIndex];
listItemName = stocks[info.position];
stockname.remove(post-1);
return true;
}
OriginalL'auteur vivek_Android | 2010-11-03
Vous devez vous connecter pour publier un commentaire.
Vous devez notifier votre ListView adaptateur que les données ont changé.
Si pour une raison quelconque ne fonctionne pas et il y a de bizarre situations où il semble qu'il n'était pas de notification, vous pouvez réaffecter votre carte via le constructeur avec la mise à jour du tableau.
juste après stockname.supprimer le(post 1); listViewAdapter est juste un exemple, vous devez le remplacer avec ce que jamais votre carte est appelé. Si vous ne pouvez pas y accéder, il suffit de faire une variable globale pour la classe.
Essayez de réinitialiser l'adaptateur, comme vous l'avez fait quand vous l'avez créé.
Salut les frères! Je sais que le dieu solutin devrait être le notifyDataSetChaned(), mais je n'ai
t worked for me. I was made a list with up and down arrow for each element. If the user push the button two item shall swap with each other. So the method what you are suggesting isn
t fonctionne pour moi, j'ai eu pour réinitialiser l'adaptateur: lw.setAdapter(mAdapter) . Thx: Karoly de Hongriela réinitialisation de l'adaptateur coûte beaucoup de ressources et de collecte des ordures, ne recommande pas que
OriginalL'auteur blindstuff
Je n'ai pas de
notifyDataSetChanged()
méthode (Android 2.3).La suite fonctionné pour moi:
Dans mon cas, j'ai changé l'ensemble de la carte et il n'a toujours pas actualiser, donc pour moi la méthode décrite ci-dessus est la seule solution de travail.
OriginalL'auteur
Essayer getListView().refreshDrawableState
OriginalL'auteur Edwin Evans
}
OriginalL'auteur Nicu P
Liste rafraîchissant pour moi:
listView.invalidateViews();
Il va faire:
Le cas de la gestion de certains élément de la liste de retrait ou de suppression de tout élément à la fois.
Testé dans l'API 24.
OriginalL'auteur Osify