Spinner avec un vide de sélection par défaut
J'ai un Spinner
qui obtient remplir à l'aide d'un SimpleCursorAdapter
. Mon curseur a certaines valeurs, mais j'ai besoin de la Spinner
pour afficher une option vide par défaut.
Je ne veux pas utiliser ArrayAdapter<String>
, ou CursorWrapper
dans cette application, pour une raison quelconque.
Il devrait y avoir un moyen plus simple de montrer une option vide dans le Spinner
par défaut.
voici le lien comment vous pourriez le faire (ajout d'un élément factice) youtube.com/watch?v=FcMiw16bouA
OriginalL'auteur AAP | 2012-01-28
Vous devez vous connecter pour publier un commentaire.
Vous pouvez tout simplement cacher les indésirables vue dans le cône adaptateur (getDropDownView ) :
Dans mon exemple de code, defaultposition est la position à la peau (comme un "Sélectionnez la valeur" position)
OriginalL'auteur Ralph
Spinner
'sOnItemSelectedListener
fonctionne sur le temps de compilation ainsi que récupère le premier élément à afficher sur leSpinner
élément sélectionné.Ajouter un mannequin élément (String null
" "
) sur votreSimpleCursorAdapter
et l'utilisationspinner.setSelected(int thatSpecificPostionYouJustAdded)
.Désolé pour le retard, peut-être ceci aider en quelque sorte.
OriginalL'auteur IronBlossom
Une méthode que j'utilise parfois pour ajouter un enregistrement supplémentaire comme une option "vide" avec un SimpleCursorAdapter destiné à un Spinner est par l'utilisation d'une clause UNION dans mon curseur de la requête. EMPTY_SPINNER_STRING pourrait être quelque chose comme: "-- aucune n'est spécifiée --" ou similaire. Utilisation de la commande "par" clause d'obtenir votre enregistrement vide d'abord et, par conséquent, la valeur par défaut dans la casserole. Un moyen rudimentaire mais efficace d'obtenir le résultat requis, sans modification de la table sous-jacente des données. Dans mon exemple, je veux seulement certains filateurs avoir une valeur vide par défaut (ceux avec un modificateur de type de "l'intensité".
OriginalL'auteur laurie_v
Après le réglage de l'adaptateur. appel setSelection (je l'ai utilisée avec 0) et juste après que définir la couleur du texte et transparent.
Ensuite, définissez votre OnItemSelectedListener (si nécessaire).
Cela rendra le spinner vide à première vu.
Mais, si l'utilisateur sélectionne le premier élément qu'il ne fait rien parce que 0 est pré-sélectionné. Pour la fixation de cela, j'ai utilisé la présente sous-classe de spinner. prises de @melquiades de réponse:
OriginalL'auteur Shirane85