Android: Pour définir un élément comme sélectionné lors de l'ouverture de ListView?
Une activité dispose d'un Bouton et d'une ListView.
Initialement, seul le Bouton est visible. Lorsque le bouton est enfoncé, la liste est affichée.
Lors de l'affichage, est-il possible pour moi de montrer l'un particulier de l'élément sélectionné/ciblés?
Un cas d'utilisation peut être que suppose que c'est une liste de paramètres de langue et quand la liste s'ouvre, la langue actuellement sélectionnée doit être montré comme l'a souligné.
Si je sais que l'index de l'élément, comment la définir comme porté sur l'affichage?
source d'informationauteur kiki
Vous devez vous connecter pour publier un commentaire.
En bref, ListView::setSelection(int position) est ce que vous avez besoin. Toutefois, selon que l'appareil est en mode tactile ou pas, il peut ou peut ne pas avoir d'effet visuel (fond d'écran mettant en évidence). Pour plus de détails, reportez-vous à Android ListView Sélection De Problème
Je poste ma solution, parce que google ne sait toujours pas la réponse.
Si vous utilisez un
Adapter
pour votreListView
ajouter ce code à votre carte:Dans votre
Activity
:Je suis en utilisant un Adaptateur et je ne veux pas de définir les couleurs d'arrière-plan, mais l'utilisation de l'android:state_selected dans drawable xml. SetSelection ne fonctionne pas pour moi, mais c'est peut-être aussi parce que j'avais besoin de SetNotifyDataChanged qui montre que l'État Sélectionné n'est pas persistant.
J'ai aussi trouvé que l'état Sélectionné un élément dans une liste n'est pas persistant, depuis SetNotifyDataChanged résultats dans la mise à jour de la liste mise en page qui efface tous. Réglage de l'élément Sélectionné dans la Carte GetView est trop tôt trop.
Finalement, j'ai réglé l'état Sélectionné pour l'affichage de l'élément sélectionné après la mise en page de la liste a été changé, ce qui est quand LayoutChange événement est déclenché (en Java, c'est probablement de la fixation d'un de OnLayoutChangeListener de la Liste).
Pour le rendre vraiment facile, je stocker le point de vue de l'élément sélectionné comme l'Adaptateur SelectedItemView.
Dans la liste de LayoutChange eventhandler je viens de mettre la carte SelectedItemView.Sélectionné pour vrai.
Voici le code de mon Activité où j'ai mis l'Adaptateur pour la liste et également vous abonner à LayoutChange (ou en Java joindre un OnLayoutChangeListener)
Voici mon code pour la Carte: