Android - configurer la touche de navigation pour l'utilisation de la matrice de
Je déclare mon Spinner de la manière suivante (c'est très statique, donc je
avoir 2 tableaux de chaîne dans array.xml
pour les titres et valeurs)
<Spinner android:id="@+id/searchCriteria" android:entries="@array/
searchBy" android:entryValues="@array/searchByValues">
</Spinner>
J'attends spinner.getSelectedItem()
pour retourner un tableau [title, value]
mais en fait, il retourne simplement une Chaîne de titre. Est-il ignorant
android:entryValues
? Comment puis-je obtenir une valeur, n'est pas un titre à partir d'elle? Est
ce faisable avec XML seul ou dois-je créer de l'adaptateur et de le faire
par programmation?
- même si ça ne fonctionne pas...j'aime la simplicité de cette pensée
Vous devez vous connecter pour publier un commentaire.
Plutôt que de la double méthode de tableau, pourquoi ne pas remplir votre ArrayAdapter par programmation avec des objets d'un type connu et l'utiliser. J'ai écrit un tutoriel de même nature (lien en bas) qui fait cela. Le principe de base est de créer un tableau d'objets Java, dites-le spinner sur le, et ensuite utiliser ces objets directement à partir de la toupie de classe. Dans mon exemple, j'ai un objet représentant un "État" qui est définie comme suit:
Puis vous pouvez remplir un spinner avec un tableau de ces classes comme suit:
Vous pouvez récupérer l'élément sélectionné comme suit:
Et maintenant vous avez une bonne foi de la classe Java pour travailler avec. Si vous voulez intercepter lorsque le compteur de changement de la valeur, tout mettre en œuvre les OnItemSelectedListener et ajouter les méthodes appropriées pour gérer les événements.
Vous pouvez trouver l'ensemble du tutoriel ici:
http://www.katr.com/article_android_spinner01.php
Donc, si vous êtes venus ici parce que vous voulez avoir à la fois l'étiquette et la valeur dans le compteur, voici comment je l'ai fait:
android:entries="@array/labels"
Dans votre code lorsque vous avez besoin d'une valeur de faire quelque chose comme ça (non, vous n'avez pas de chaîne)
Abandonner, abandonner! Je ne sais pas ce que vous avez en moi, mais
Spinner
ne prend pas en chargeandroid:entryValues
attribut. Que l'on est réellement à partir deListPreference
qui fait une chose similaire (affiche la liste des éléments de dialogue pop-up). Pour ce dont j'ai besoin, je vais avoir à (hélas) utiliser leSpinnerAdapter