Comment mettre à jour un Spinner dynamiquement correctement?
J'ai une toupie avec une coutume adaptateur d'affichage des objets à partir d'une base de données.
Lorsque la liste d'objets changé je créer une nouvelle carte avec la Liste et de l'appliquer sur la touche de navigation. Ensuite, le premier élément est sélectionné, j'ai donc essayé ceci:
//5th item selected
int pos = spinner.getSelectedItemPosition();
spinner.setAdapter(newAdapter);
//0th item selected
spinner.setSelectedItem(pos);
//5th item is selected
Mais le GUI ne montrent toujours le premier élément?
spinner.invalidate()
n'a pas aidé.
Est-ce la bonne façon d'atteindre ce que je veux? Je ne pouvais vraiment pas trouver toutes les informations sur ce comportement.
avez-vous essayé l'adaptateur.notifyDataSetChanged();
OriginalL'auteur user376244 | 2012-02-25
Vous devez vous connecter pour publier un commentaire.
Résolu: je crois que le principal problème était la coutume spinner adaptateur. Cela fonctionne bien maintenant
OriginalL'auteur user376244
hmm sale ,,,sa fonctionne pour moi à chaque fois et partout dans mon code..
OriginalL'auteur Samir Mangroliya
a u essayé notifydatasetChanged() ou notifydatasetInvalidate methode de carte.
newAdapter.notifydatasetChanged()
Pouvez-vous me montrer comment u créer mAdapter. Je veux dire mAdapter=new ArrayAdapter<quelque Chose>(blah blah); ??
Vous n'avez pas à attribuer de nouvelles de l'Adaptateur. U ajouter des données à la Liste qui est utilisée dans l'adaptateur et invoquer NotifyDataSetChanged() la méthode.Pas de nouvelle Carte.
Si je viens de mettre la nouvelle liste, l'INTERFACE ne sera pas mis à jour. MySpinnerAdapter aa = new MySpinnerAdapter(contexte, myobjects); spinner.setAdapter(aa);
OriginalL'auteur Pankaj