android spinner déroulante case à cocher
J'ai Spinner
comme ceci :
<Spinner
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/spinner1"
android:background="@drawable/spinner_bg"
android:popupBackground="@drawable/spinner_bg"/>
c'est spinner_bg.xml :
<item>
<layer-list>
<item>
<shape>
<gradient
android:startColor="#ffffff"
android:centerColor="#111111"
android:endColor="#000000"
android:angle="-90" />
<stroke
android:width="2dp"
android:color="#ffffff" />
<corners
android:radius="2dp" />
<padding
android:left="10dp"
android:right="10dp"/>
</shape>
</item>
<item >
<bitmap
android:gravity="right"
android:src="@android:drawable/arrow_down_float" />
</item>
</layer-list>
</item>
c'est mon code Personnalisé spinner :
ArrayAdapter<ClassId> adapter = new ArrayAdapter<ClassId>(getActivity(),
R.layout.list_id, idList);
adapter.setDropDownViewResource(R.layout.list_id_select);
c'est la mise en page de list_id.xml :
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAllCaps="true"
android:singleLine="true"
android:ellipsize="end"
android:textColor="#ff0004"
android:textSize="14sp"
android:paddingTop="10dp"
android:paddingBottom="10dp"/>
c'est la mise en page de list_id_select.xml :
<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAllCaps="true"
android:singleLine="true"
android:ellipsize="end"
android:textColor="#0004ff"
android:textSize="14sp"
android:checked="true"
android:checkMark="@drawable/custom_checkbox"
android:paddingTop="10dp"
android:paddingBottom="10dp"/>
et c'est custom_checkbox.xml :
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true"
android:drawable="@android:drawable/checkbox_on_background" />
<item android:state_pressed="true"
android:drawable="@android:drawable/checkbox_on_background" />
<item android:drawable="@android:drawable/checkbox_off_background" />
c'est mon résultat lorsque déroulante de spinner montrer :
_________________________________________________
__________________________case_______________
____texte_________________________________________
que le sens des textes et de la case à cocher n'est pas en ligne (case plus élevé que le texte).
comment résoudre ce problème?
OriginalL'auteur 1234abcd | 2016-07-17
Vous devez vous connecter pour publier un commentaire.
Pour cela vous devez Créer
Custom Adapter
et définirTextView
etCheckBox
à l'intérieur de celle ci-dessous.Définir
Spinner
en xmlCréer
spinner_item.xml
fichier danslayout
dossier.Maintenant créer
StateVO.java
de classe, qui peuvent contenir desTextView
etCheckBox
valeur.Maintenant dans votre
Activity
inititlize laSpinner
et définirCustomAdapter
ci-dessous.Et Finalement de Créer
CustomAdapter
classe comme ci-dessous.MyAdapter.java
De sortie :
Case fonctionnalité fonctionne bien mais les valeurs sélectionnées est de ne pas ajouter à la casserole
OriginalL'auteur Ironman
Ce post est une grande ressource. Pour toute personne intéressée, j'ai fait un générique carte basée sur la réponse qui a bien fonctionné pour plusieurs types de données. Vous permet également de cliquer sur le texte pour basculer la case à cocher.
Et la mise en page
checkable_spinner_item.xml
Que vous pouvez l'utiliser par la création d'une liste d'éléments à afficher, un Jeu, qui contiendra les éléments sélectionnés, et de la ligne d'en-tête de texte. Par exemple:
Un exemple en cours d'utilisation:
EDIT:
MyObject
peut être n'importe quelle classe ou enum, tout ce que vous voulez associer à la touche de navigation des articles. Si vous copiez cet exemple, il faudrait mettre en œuvre unString getName()
méthode. Voici un exemple simple:MyObject
peut être n'importe quoi. Pour l'exemple de l'activité ici, il faut juste avoir ungetName
fonction, mais vous pouvez le changer à tout ce que vous voulez pour obtenir la chaîne affichée dans la réglette pour cet objet. J'ai ajouté un exemple simple de la classe.OriginalL'auteur Tyler V