Android: Où se cache l’atsortingbut de couleur de texte du widget Spinner?

J’essaie de changer la couleur du texte de l’élément unique affiché dans le bouton de la visionneuse après avoir sélectionné un élément dans la liste déroulante. J’ai lu les thèmes.xml et styles.xml dans le SDK Android pendant une heure maintenant, et je n’arrive pas à trouver d’où le Spinner obtient la valeur de couleur.

Pour clarifier, je n’essaie PAS de changer la couleur d’un élément de liste déroulante, j’essaie de changer la couleur du texte affiché du disque lorsqu’il n’y a pas de liste déroulante. Je suppose que vous pourriez l’appeler le «bouton» du texte de la roulette.

Je pense que c’est probablement ce bit dans styles.xml

  

– = EDIT = – Voici le résultat: entrer la description de l'image ici

et voici comment ça se passe:

 < ?xml version="1.0" encoding="utf-8"?>      

Ajoutez simplement ceci à la balise d’application dans votre AndroidManifest.xml

 android:theme="@style/MooTheme" 

Oui, CaseyB a raison.

Voici comment je règle la couleur du texte, un exemple simple:

styles.xml

      

Puis dans votre manifeste:

  

Le texte à l’extérieur de tous vos fileurs sera maintenant vert et le texte sur les listes déroulantes sera rouge.

Je l’ai fait en utilisant une autre technique simple,

Copiez les fichiers simple_spinner_item.xml et simple_spinner_dropdown_item.xml du dossier res / layout Android et copiez-les dans votre projet.

Puis modifiez les lignes suivantes

 ArrayAdapter adapter = ArrayAdapter.createFromResource(this, R.array.planets_array, Android.R.layout.simple_spinner_item); adapter.setDropDownViewResource(Android.R.layout.simple_spinner_dropdown_item); spinnerSubject.setAdapter(adapter); 

comme:

 ArrayAdapter adapter = ArrayAdapter.createFromResource(this, R.array.planets_array, R.layout.simple_spinner_item); adapter.setDropDownViewResource(R.layout.simple_spinner_dropdown_item); spinnerSubject.setAdapter(adapter); 

Le rest est simple, vous pouvez maintenant éditer le fichier simple_spinner_item.xml pour modifier l’apparence d’un élément visible sur le widget spinner et modifier le fichier simple_spinner_dropdown_item.xml pour modifier l’apparence de la liste déroulante.

Par exemple, la disposition de mon activité contient:

  

et mon simple_spinner_item.xml contient maintenant:

  

et le simple_spinner_dropdown_item.xml ressemble à:

  

Vous pouvez utiliser setOnItemSelectedListener sur l’object Spinner,

 spinnerObject.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView< ?> parentView, View selectedItemView, int position, long id) { ((TextView)parentView.getChildAt(0)).setTextColor(Color.rgb(249, 249, 249)); // OR ((TextView)parentView.getChildAt(0)).setTextColor(Color.RED); } }); 

c’est très simple en fait. Je cherchais partout, vous avez juste besoin de créer du style et mis sur spinner

Créez d’abord votre thème dans Style.xml

   

puis dans votre fichier XML où vous avez défini votre disque, ajoutez ceci:

android: theme = “@ style / spinnerTheme

   

Profitez du codage

Je ne pense pas qu’il y ait une couleur associée au texte. Son plus probablement prédéfini dans le code android, pourrait devoir faire votre propre si vous voulez changer la couleur du spinner.

Cela impliquerait de changer la méthode ondraw () et de dessiner le spinner comme vous le souhaitez.

La seule chose que je pense capable de résoudre ce problème est la propriété de style du spinner.

Source: http://developer.android.com/reference/android/widget/Spinner.html

Cela pourrait aider:

http://www.designerandroid.com/?p=28

Cela a fonctionné pour moi créer votre propre fichier de mise en page avec une définition personnalisée pour l’élément spinner.

 custom_spinner.xml:  

Changer l’article spinner à l’aide de l’adaptateur

 Spinner spinner= (Spinner) findViewById(R.id.spinner1); ArrayAdapter adapter = ArrayAdapter.createFromResource(this,R.array.by_loc_array,R.layout.txt_spinner); spinner.setAdapter(adapter);