7
votes

Android NumberSicker Wraps Valeurs lorsque les valeurs affichées sont modifiées.

J'ai une boîte de dialogue Android code> avec un numéro de numéros de 3 code> à l'intérieur. Changer le 3ème Picker déclenche une modification des valeurs affichées des 2 premiers cueilleurs code>. Cependant, j'ai remarqué que lorsque je modifie les valeurs affichées et appelez

getWrapSelectoWheel()


1 commentaires

Avez-vous déjà trouvé une solution? Je traite toujours avec le même problème, définir le sélecteur de réinitialisation par programme de manière programmée.


3 Réponses :


3
votes

Je ne sais pas quelle version d'Android vous courez, mais je vous suggère de lire le code source pour le numérypicker (v4.2.2) . Peut-être avez-vous besoin de déclencher un appel à la méthode privée InitialiseSelectorWheelindices qui peut être effectuée via un appel à certaines des méthodes publiques.

Bien que je pense que votre utilisation du cueilleur, en modifiant le drapeau d'emballage à travers, semble un peu inhabituel. Vous ne voulez pas que ce comportement soit cohérent? Dans ce cas, appelez un appel à setwrapaSelectorWheel une fois après avoir défini vos valeurs min et max, puis laissez-la seule.


0 commentaires

15
votes

J'ai trouvé une solution, Daniel était sur la bonne voie, mais il apparaît que initialiseelectorWheelindices est en fait une mauvaise chose une fois que vous avez déjà défini vos valeurs. Pour cette raison, vous devez appeler setminvalue et SetMaxValue avant de définir vos valeurs. Toutefois, si vous avez déjà une matrice définie sur votre sélecteur, si vous appelez SetMaxValue avec une valeur supérieure à la matrice actuelle, il vous donnera un arrayindexoutofbounds exception.

La solution consiste ensuite à effacer les anciennes valeurs d'affichage, définissez votre valeur max, alors vous pouvez appeler setwrapaSelectorwheelwheel et setDisplayvalues ​​: : xxx


0 commentaires

1
votes

J'ai vérifié ce comportement aussi sur Kitkat. C'est un bug. Impossible de trouver un rapport existant alors j'ai créé une nouvelle ici: Bug # 98319

par réponses précédentes J'ai trouvé que la création de setwrapeselectorWheel (Faux) Le dernier appel après tous les appels de configuration fonctionnera pour la plupart des scénarios. Dans mon cas, je modifie de manière dynamique des limites du numérisonnier, car l'utilisateur est interagi et je ne peux tout simplement pas l'obtenir pour se comporter à 100%. Je choisis de vivre avec le sélecteur d'enveloppe.


0 commentaires