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 :
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);
Définissez l'ArrayAdapter comme adaptateur pour votre Spinner :
mSpinner.setAdapter(adapter);
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!