6
votes

Y a-t-il une solution de contournement au bogue OnitemsElementListener?

Je soupçonne que la réponse est non, mais je pensais demander ...

J'ai une fileuse qui doit révéler un bouton "Continuer" caché lorsque l'utilisateur a effectué une sélection. Cependant, étant donné que l'onitemSelectedlistener est tiré lorsque le filateur est rendu pour la première fois, et comme il ne tire pas à nouveau lorsque l'utilisateur sélectionne l'élément qui est déjà mis en surbrillance, il ne semble pas être un moyen d'utiliser cet événement pour révéler un bouton caché (ou vraiment quelque chose) contingent sur l'utilisateur ayant effectué une sélection.

Y a-t-il une manière alternative de faire cela? Adapterview a un clictlistener qui jette une exception, c'est donc un non-démarreur. Et il ne semble pas avoir d'autre schéma de notification lorsque l'utilisateur prend d'abord en contact avec elle, ou quand il se ferme ... sauf si je manque quelque chose? (ne serait pas la première fois).

ALL TOUTE AIDE APPÉRIEUR.


0 commentaires

3 Réponses :


1
votes

J'ai vu dans un Peu Répondez ici sur Stackoverflow que OnnothingSelected vous permettra de détecter cela.

Cette réponse était la seule et n'a pas été acceptée, et je ne l'ai pas essayé moi-même, mais donnez-lui un aller et voyez ce qui se passe.


1 commentaires

Homme, ça sonnait si bon pour une seconde ... j'ai pensé bien sûr!, Comment ai-je manqué ça ?! Mais malheureusement, cela (presque entièrement inutile de rappel) est là lorsque vous supprimez de manière programmable un membre sélectionné du tableau de l'adaptateur de sous l'auditeur. Je suppose que cela est utile dans un cas (hautement improbable), mais ce qui serait beaucoup plus utile, c'est le problème beaucoup plus courant de quelqu'un de réélection d'un élément présélectionné! Je me sens comme si je dois manquer quelque chose! Comment quelque chose de si couramment nécessaire peut-il être alors manquant de manière flagrante ?!



2
votes

Je sais que ce n'est pas une solution, en soi, mais du son des choses, il est nécessaire que l'utilisateur sélectionne quelque chose à être autorisé à continuer, correct? Et si vous ajoutez, comme premier article de la spinner, un élément sans rapport, disant quelque chose comme «Veuillez sélectionner une ...»? Ayez-le comme l'élément choisi par défaut, l'utilisateur devra alors effectuer une sélection différente pour continuer, d'où l'auditeur sera viré.

Juste une pensée. :)


2 commentaires

C'est en fait exactement ce que j'avais, jusqu'à ce que le client ait décrété qu'ils n'aiment pas cela étant la première option, alors je suis à nouveau à la planche de dessin :)


Gah, dommage! :) Je n'ai malheureusement pas une autre réponse pour vous. : P



2
votes

J'ai une fileuse qui doit révéler un bouton "Continuer" caché lorsque l'utilisateur a effectué une sélection.

L'utilisateur a toujours fait une sélection. Il n'y a pas de concept d'un spinner sans sélection. Par conséquent, ne cachez pas le bouton "Continuer".


6 commentaires

Je ne suis pas sûr de ce que vous dites exactement. Il y a une sélection par défaut (élément 0) lorsque la fileuse charge d'abord. L'utilisateur n'a pas "fait" cette sélection. Il est fait pour eux. Je comprends que comme un développeur, il peut être tentant de dire "S'ils ne la portent pas de la sélection, ils ont sélectionné la valeur par défaut, par défaut ... mais ce n'est pas la condition de mon client. Ils veulent mandater que l'utilisateur choisit réellement l'utilisateur. quelque chose.


@Dr. DrEDEL: Mon point est que spinner ne supporte pas très bien le modèle de votre client. Il y a trois options. 1). Hack dans un premier élément supplémentaire à votre adaptateur qui correspond à l'élément "NO SELECTION" et détectez-le lorsque l'utilisateur s'allume de celui-ci. 2). Votre client s'adapte au comportement de spinner et cesse d'attendre que les utilisateurs effectuent toujours une sélection positive. 3). Vous utilisez quelque chose d'autre pour votre UI (par exemple, singlechoice listview ) qui prend en charge la notion d'absence de sélection. Ce dernier choix inclut la possibilité que vous écriviez votre propre widget qui se comporte comme vous le souhaitez.


Oui, je pense que ce sont mes options. Mais cela pose une question de suivi intéressante. Y a-t-il un moyen d'écrire un auditeur personnalisé qui écoute des choses que la fileuse ne diffuse pas de manière native? Par exemple, le moment où il s'ouvre ou le moment où l'utilisateur clique sur l'une des boutons radio de l'intérieur?


@Dr. Dredel: "Y a-t-il un moyen de rédiger un auditeur personnalisé qui écoute des choses que la fileuse ne diffuse pas de manière native?" - Probablement pas, à court de clonage spinner et probablement abscinner dans votre propre projet et apporte des modifications au code. Il y a toujours la chance que vous ayez de la chance et la méthode qui fait la chose non éventuelle est dans le SDK, vous pouvez donc la remplacer, la chaîne à la superclasse et tirer votre événement. Cependant, c'est loin d'être certain.


@Commonswar Peut-on faire quelque chose en utilisant la touche personnalisée Spiner.setonkeylistener (L)?


@DHAMS: Je suis sûr que vous pouvez faire quelque chose "en utilisant la clé personnalisée de linster", mais rien qui ne semblerait pertinent pour cette question.