2010-11-11 34 views
4

J'ai un spinner et son adaptateur. J'ai personnalisé la liste et une vue de spinner.Android - Comment puis-je changer une valeur spinner sans déclencher setOnItemSelectedListener

La valeur de la turbine peut être modifiée par 2 façons: - par un choix de l'utilisateur - programaticaly

Lorsque l'utilisateur fait un choix, et seulement si ce choix est différent de la valeur sélectionnée, je peux (ou non) veut montrer une deuxième activité pour lui faire choisir une valeur complète.

Si l'utilisateur annule cette deuxième activité, je souhaite que le choix de l'essoreuse ne soit pas validé et conserve sa position d'origine.

Mais je ne veux pas attraper, ou être capable d'identifier, des changements programmatiques pour ne pas ennuyer l'utilisateur avec un choix inutile à faire.

Mais je ne trouve aucun moyen de le faire.

Avez-vous une idée?

Le mieux que je pouvais faire est: - rappelez-vous quelque part la valeur de la fileuse dans mes attributs de classe, - déclencheur et événement itemSelected et comparer la valeur sélectionnée avec le souvenir d'un, - vide la vue spinner si la nouvelle le choix n'est pas visible (parce que le second choix n'est peut-être pas complet) - passe par la deuxième activité - en fonction du résultat de cette deuxième activité, force l'ancienne valeur dans le fileur ou affiche la valeur du fileur et cette fois-ci Pour cela, et pour filtrer le clic de l'utilisateur, je peux TOUJOURS forcer l'ancienne valeur de spinner mémorisée sur la nouvelle que je veux mettre en programme. Si je ne fais pas cela, l'événement est déclenché et je n'ai aucun moyen d'empêcher l'utilisateur de passer par la deuxième activité.

Voyez-vous une meilleure façon de faire mes affaires?

Nous vous remercions de votre aide.

Oliver

+1

Vous devez étiqueter et formater correctement vos questions, ou personne ne va répondre. – skaffman

Répondre

1

J'ai déjà répondu à des questions similaires. Donc, vérifiez simplement ceci: Android Spinner selection

+0

Wow ... Vous l'avez dit: "Spinner dans Android est douloureux". Je pensais qu'il y avait une autre solution, mais je vais continuer avec celui-ci. Je vous remercie. – Oliver

+0

@Arhimed: en fait j'ai deux formes, le spinner sous la forme de formulaire déclenche un événement sur le changement d'élément appelant une fonction, cette nouvelle fonction devrait changer les valeurs des filateurs multiples en conséquence, toute aide ???? –

+0

@Arhimed: je ne peux pas changer le tableau, comme le spinner devrait toujours afficher le même tableau de valeur, juste la valeur d'affichage devrait changer –