Dans mon application Android, j'utilise spinner, et j'ai chargé des données de la base de données SQLite dans le spinner, et cela fonctionne correctement. Voici le code pour cela.
Spinner spinner = (Spinner) this.findViewById(R.id.spinner1);
List<String> list = new ArrayList<String>();
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String> (this,android.R.layout.simple_spinner_item, list);
cursor.moveToFirst();
list.add("All Lists");
if (cursor.getCount() > 0) {
for (int i = 0; i < cursor.getCount(); i++) {
keyList[i] = cursor.getString(cursor.getColumnIndex(AndroidOpenDbHelper.KEYWORD));
list.add(keyList[i]);
cursor.moveToNext();
}
}
Database.close();
cursor.close();
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(dataAdapter);
Maintenant, je veux changer la couleur et la taille du texte des données de spinner. J'ai utilisé les lignes XML suivantes pour ma balise spinner sur mon fichier XML, mais cela ne fonctionne pas.
android:textColor="@android:color/white"
android:textSize="11dp"
Comment puis-je changer la couleur et la taille du texte de mon spinner?
Réponses:
Créez un fichier XML personnalisé pour votre élément spinner.
spinner_item.xml:
Donnez votre couleur et taille personnalisées au texte de ce fichier.
Maintenant, utilisez ce fichier pour afficher vos éléments de spinner comme:
Vous n'avez pas besoin de définir la ressource déroulante. Il vous suffira
spinner_item.xml
de montrer vos articles dans spinner.la source
android:id="@+id/customSpinnerItemTextView"
. Si vous l'aviez débogué, vous le sauriez.Simple et net ...:
la source
Si tous les filateurs peuvent avoir la même couleur de texte pour leurs éléments TextView, une autre approche consiste à utiliser un style personnalisé pour les éléments déroulants de la filière:
Dans
res/values/styles.xml
:Et définissez votre couleur personnalisée dans res / values / colours.xml:
la source
android:
comme ceci<item name="spinnerDropDownItemStyle">@style/mySpinnerItemStyle</item>
Voici un lien qui peut vous aider à changer la couleur du Spinner :
Cliquez ici
Vous devez créer votre propre fichier de mise en page avec une définition personnalisée pour l'élément spinner spinner_item.xml :
Si vous souhaitez personnaliser les éléments de la liste déroulante, vous devrez créer un nouveau fichier de disposition. spinner_dropdown_item.xml :
Et enfin un autre changement dans la déclaration du spinner:
C'est ça.
la source
android:textSize="20sp"
dans le premier extrait de code est inutile: la taille du texte du contrôle est définie dans lespinner_item.xml
Si vous travaillez avec android.support.v7.widget.AppCompatSpinner, voici la solution testée la plus simple utilisant des styles:
Et le style:
Le seul inconvénient est l'androïde: backgroundTint définit la couleur de la flèche déroulante et de l'arrière-plan déroulant.
la source
style="@style/Widget.AppCompat.Spinner.Underlined"
mais vous n'avez questyle name="Spinner"
...paddingStart
nécessite l'API 17,backgroundTint
nécessite l'API 21.Pour éviter le retard, vous devez non seulement définir les propriétés du texte dans l'
onItemSelected
écouteur, mais également dans laonCreate
méthode de l'activité (mais c'est un peu délicat).Plus précisément, vous devez le mettre
onCreate
après avoir configuré l'adaptateur:Et puis mettez ceci dans
onItemSelected
:Voici un exemple complet:
Pour plus de détails, voir ma question .
la source
Si vous souhaitez que la couleur du texte change uniquement dans l'élément sélectionné, cela peut être une solution de contournement possible. Cela a fonctionné pour moi et devrait également fonctionner pour vous.
la source
Pour quelqu'un qui n'a besoin que d'un
Style
moyenAppCompat
.Résultat
styles.xml
your_spinner_layout.xml
Plus
Et si vous souhaitez définir par
android:entries
programme avec un style défini.Essaye ça.
Comme dans le code, en utilisant même
Context
laSpinner
est chose la plus importante.la source
Pour changer la couleur du texte de la double flèche:
la source
Plutôt que de créer une mise en page personnalisée pour obtenir une petite taille et si vous souhaitez utiliser LAYOUT interne de petite taille d'Android pour le spinner, vous devez utiliser:
"android.R.layout.simple_gallery_item" au lieu de "android.R.layout.simple_spinner_item".
Cela peut réduire la taille de la disposition du spinner. C'est juste un truc simple.
Si vous souhaitez réduire la taille d'une liste déroulante, utilisez ceci:
la source
La façon la plus simple de réutiliser / modifier les ressources android.R.layout est simplement d'aller à la définition. Dans Android Studio, faites Ctrl+ Bsur android.R.layout.simple_spinner_item.xml.
Il vous amènera au fichier de ressources. Copiez simplement le fichier de ressources et ajoutez une nouvelle mise en page dans votre dossier Package.R.layout et changez la couleur de texte de la vue de texte comme vous le souhaitez, puis appelez-la simplement dans l'adaptateur comme ceci:
la source
Pour ceux qui veulent changer de
DrowDownIcon
couleur, vous pouvez utiliser comme cecila source
<item name="android:colorControlNormal" tools:targetApi="lollipop">@color/light_gray</item>
AppTheme
Drawable spinnerDrawable = spinner.getBackground().getConstantState().newDrawable(); spinnerDrawable.setColorFilter(getResources().getColor(R.color.md_white_1000), PorterDuff.Mode.SRC_ATOP); if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { spinner.setBackground(spinnerDrawable); }else{ spinner.setBackgroundDrawable(spinnerDrawable); }
Peut modifier la couleur du texte en remplaçant la méthode getView comme suit:
la source
Le plus simple: fonctionne pour moi
la source
utilisez simplement ceci:
la source
Une autre variante de la solution d'Achraf serait de s'assurer que vous tenez compte des tailles d'écran. Vous devrez obtenir le spinner dans onCreate et définir l'écouteur après avoir défini l'adaptateur:
Ensuite, vous pouvez commencer à modifier la taille du texte de la vue qui s'affiche avant de cliquer sur la double flèche:
Tout ce que vous devez faire est de créer des dossiers spécifiques à la mise en page comme celui-ci:
puis ajoutez un fichier xml nommé "bool.xml" dans chacun de ces dossiers:
la source
Nous devons d'abord créer le
xml
fichier de ressources simple pour lestextview
mêmes comme ci-dessous:et enregistrez-le. après avoir défini votre liste d'adaptateurs.
la source
vous pouvez avoir ce type d'adaptateur pour spinner, totalement personnalisé:
tandis que R.layout.spinner_text est:
la source
Si vous voulez une méthode simple, pour ajouter des éléments à une liste déroulante, vous les ajoutez généralement au strings.xml. Voici un exemple sur la façon d'ajouter de la couleur à l'aide du fichier strings.xml:
SÉLECTIONNER LA GAMME D'ÂGE
la source
J'ai fait cela comme suit: j'ai utilisé les méthodes getDropDownView () et getView ().
Utilisez
getDropDownView()
pour Spinner ouvert.Et utiliser
getView()
pour Spinner fermé.la source
Essayez cette méthode. Ça marche pour moi.
la source
ajoutez simplement un nouveau style comme celui-ci:
et l'utiliser:
la source
c'est tout profiter de votre codage ...
la source