Maison  >  Article  >  Java  >  Comment définir la sélection d'un spinner par valeur et non par position dans Android ?

Comment définir la sélection d'un spinner par valeur et non par position dans Android ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-31 03:13:02361parcourir

How to Set a Spinner's Selection by Value, Not Position in Android?

Définition de la sélection du Spinner par valeur, et non par position

Lors de la mise à jour d'une vue et la sélection du Spinner doit correspondre à une valeur stockée dans la base de données, le L'approche conventionnelle consiste à localiser la position correspondante à l'aide d'une méthode indexOf sur l'adaptateur. Cependant, cette approche se heurte à un obstacle car l'adaptateur ne fournit pas une telle méthode.

Pour surmonter ce défi, une approche plus appropriée consiste à utiliser la méthode getPosition d'ArrayAdapter. Cette méthode, lorsqu'elle est associée à un ArrayAdapter approprié, permet l'identification de la position associée à une valeur spécifique.

Considérez un scénario dans lequel le Spinner nommé mSpinner contient une valeur de "une certaine valeur". Pour localiser et comparer sa position, suivez ces étapes :

Créez un ArrayAdapter à partir du fichier de ressources R.array.select_state :

<code class="java">ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.select_state, android.R.layout.simple_spinner_item);</code>

Définissez l'adaptateur du spinner et DropDownViewResource :

<code class="java">adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
mSpinner.setAdapter(adapter);</code>

Ensuite, si la valeur à comparer (compareValue) n'est pas nulle :

<code class="java">if (compareValue != null) {
    int spinnerPosition = adapter.getPosition(compareValue);
    mSpinner.setSelection(spinnerPosition);
}</code>

En employant cette approche, la sélection du Spinner peut être définie avec précision en fonction de la valeur stockée dans la base de données, offrant une expérience utilisateur transparente lors des mises à jour des vues.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn