Définition de la sélection du Spinner par valeur, et non par position
Lors de la mise à jour d'une vue et que 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érons un scénario dans lequel le Spinner nommé mSpinner contient une valeur de "une certaine valeur". Pour localiser et comparer sa position, procédez comme suit :
Créez un ArrayAdapter à partir du fichier de ressources R.array.select_state :
ArrayAdapter adapter = ArrayAdapter.createFromResource(this, R.array.select_state, android.R.layout.simple_spinner_item);
Définissez l'adaptateur du spinner et DropDownViewResource :
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
mSpinner.setAdapter(adapter);
Ensuite, si la valeur à comparer (compareValue) n'est pas nulle :
if (compareValue != null) {
int spinnerPosition = adapter.getPosition(compareValue);
mSpinner.setSelection(spinnerPosition);
}
En utilisant 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 ainsi une expérience utilisateur transparente lors des mises à jour des vues.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3