Maison  >  Article  >  Java  >  Comment définir par programme l'élément sélectionné dans un spinner Android par valeur ?

Comment définir par programme l'élément sélectionné dans un spinner Android par valeur ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-31 17:30:02787parcourir

How to Programmatically Set the Selected Item in an Android Spinner by Value?

Définition de l'élément sélectionné du Spinner par valeur

Lors de la mise à jour d'une vue, vous pouvez rencontrer le besoin de présélectionner une valeur stockée dans la base de données pour un fileur. Dans un premier temps, vous pouvez essayer une solution telle que :

void setSpinner(String value)
{
    int pos = getSpinnerField().getAdapter().indexOf(value);
    getSpinnerField().setSelection(pos);
}

Cependant, cette approche se heurte à un obstacle car l'interface de l'adaptateur ne fournit pas de méthode indexOf.

Solution

Pour rechercher et comparer la position d'une valeur spécifique dans votre Spinner, suivez ces étapes :

  1. Définissez une valeur de comparaison, par exemple : String compareValue = "some value".
  2. Créez un ArrayAdapter à l'aide de la ressource requise :

    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.select_state, android.R.layout.simple_spinner_item);
  3. Définissez l'ArrayAdapter comme adaptateur pour votre Spinner :

    mSpinner.setAdapter(adapter);
  4. Utilisez la méthode getPosition pour déterminer la position de votre valeur de comparaison dans l'ArrayAdapter :

    if (compareValue != null) {
     int spinnerPosition = adapter.getPosition(compareValue);
     mSpinner.setSelection(spinnerPosition);
    }

    En suivant ces étapes, vous pouvez effectivement présélectionner une valeur dans un Spinner en fonction de sa valeur plutôt que sa position dans la liste.

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