Android: ¿Dónde está escondido el atributo de color del texto del widget Spinner?

Estoy intentando cambiar el color del texto del solo artículo que se exhibe en el botón del hilandero después de que usted seleccione un artículo del menú desplegable. He estado examinando los temas.xml y styles.xml en el SDK de Android durante una hora, y no puedo encontrar dónde el Spinner está recibiendo el valor del color.

Para aclarar, no estoy tratando de cambiar el color de un elemento desplegable, estoy tratando de cambiar el color del texto mostrado por el hilandero cuando no hay ningún menú desplegable. Supongo que podrías llamarlo el texto del "botón" del hilandero.

7 Solutions collect form web for “Android: ¿Dónde está escondido el atributo de color del texto del widget Spinner?”

Creo que es probablemente este poco en styles.xml

<style name="Widget.TextView.SpinnerItem"> <item name="android:textAppearance">@style/TextAppearance.Widget.TextView.SpinnerItem</item> </style> <style name="Widget.DropDownItem.Spinner"> <item name="android:checkMark">?android:attr/listChoiceIndicatorSingle</item> </style> 

– = EDIT = – Aquí está el resultado: Introduzca aquí la descripción de la imagen

Y aquí está cómo se hace:

 <?xml version="1.0" encoding="utf-8"?> <resources> <style name="MooTheme" parent="android:Theme"> <item name="android:spinnerItemStyle">@style/MooSpinnerItem</item> </style> <style name="MooSpinnerItem" parent="android:Widget.TextView.SpinnerItem"> <item name="android:textAppearance">@style/MooTextAppearanceSpinnerItem</item> </style> <style name="MooTextAppearanceSpinnerItem" parent="android:TextAppearance.Widget.TextView.SpinnerItem"> <item name="android:textColor">#F00</item> </style> </resources> 

A continuación, sólo tienes que añadir esto a la etiqueta de la aplicación en su AndroidManifest.xml

 android:theme="@style/MooTheme" 

Sí, CaseyB está bien.

Aquí es cómo fijé el color de texto del hilandero, un pequeño ejemplo simple:

Styles.xml

  <style name="Theme.NoTitleBar.WithColoredSpinners" parent="@android:style/Theme.NoTitleBar"> <item name="android:spinnerItemStyle">@style/SpinnerItem</item> <item name="android:spinnerDropDownItemStyle">@style/SpinnerItem.DropDownItem</item> </style> <style name="SpinnerItem" parent="@android:style/Widget.TextView.SpinnerItem"> <item name="android:textColor">#00FF00</item> </style> <style name="SpinnerItem.DropDownItem" parent="@android:style/Widget.DropDownItem.Spinner"> <item name="android:textColor">#FF0000</item> </style> </resources> 

Entonces en su manifiesto:

 <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/Theme.NoTitleBar.WithColoredSpinners" > 

El texto en el exterior de todos sus hilanderos ahora será verde y el texto en los desplegables será rojo.

Hice esto usando otra técnica simple,

Copie los archivos simple_spinner_item.xml y simple_spinner_dropdown_item.xml de la carpeta Res / layout de Android y cópielos en su proyecto.

A continuación, modifique las siguientes líneas

 ArrayAdapter<CharSequence> 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); 

como:

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

El resto es fácil, ahora puede editar el archivo simple_spinner_item.xml para editar la apariencia de un elemento visible en el widget de spinner y editar el archivo simple_spinner_dropdown_item.xml para cambiar el aspecto de la lista desplegable.

Por ejemplo, el diseño de mi actividad contiene:

 <Spinner android:id="@+id/mo_spinnerSubject" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="5dp" android:background="@drawable/spinnerset_background" /> 

Y mi simple_spinner_item.xml ahora contiene:

 <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/text1" android:layout_width="match_parent" android:layout_height="wrap_content" android:singleLine="true" android:textColor="@color/custom_white" android:textSize="16sp" /> 

Y el simple_spinner_dropdown_item.xml se ve así:

 <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/text1" style="?android:attr/spinnerDropDownItemStyle" android:layout_width="match_parent" android:layout_height="?android:attr/listPreferredItemHeight" android:background="@color/custom_black" android:ellipsize="marquee" android:singleLine="true" android:textColor="@color/custom_white" /> 

Puede utilizar setOnItemSelectedListener en el objeto 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); } }); 

Es muy simple en realidad. Yo estaba buscando todo lo que sólo necesita para crear el estilo y el conjunto está en la ruleta

Primero crea tu tema en Style.xml

  <style name="spinnerTheme" parent="android:Theme"> <item name="android:textColor">@color/gray_dark</item> </style> 

Entonces en su xml donde usted ha fijado su hilandero agregue esto:

Android: theme = "@ estilo / spinnerTheme "

  <Spinner android:id="@+id/spinner" android:layout_width="match_parent" android:layout_height="50dp" android:padding="10dp" android:paddingBottom="5dp" android:paddingLeft="10dp" android:layout_span="3" android:layout_weight="1.3" android:theme="@style/spinnerTheme" android:textSize="12sp" android:spinnerMode="dialog" android:clickable="false"/> 

Disfruta de la codificación

No creo que haya un color asociado con el texto. Es más probable que predefinidos en el código de Android, podría tener que hacer su propia si desea cambiar el color del hilandero.

Esto incluiría cambiar el método ondraw () y dibujar el spinner como le gustaría que mirara.

Lo único que creo que podría potencialmente resolver este problema es la propiedad de estilo de la ruleta.

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

Esto puede ayudar:

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

Esto funcionó para mí crear su propio archivo de diseño con una definición personalizada para el elemento spinner.

 custom_spinner.xml: <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/txt_spinner" android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="16sp" android:textColor="#ffffff" /> 

Cambiar el elemento giratorio mediante adaptador

 Spinner spinner= (Spinner) findViewById(R.id.spinner1); ArrayAdapter adapter = ArrayAdapter.createFromResource(this,R.array.by_loc_array,R.layout.txt_spinner); spinner.setAdapter(adapter); 
  • ¿Por qué el texto ListView generado dinámicamente es gris?
  • Java de Java no funciona
  • React Native: Determine el número de líneas del componente Text
  • ¿Cómo mostrar el texto vectorizado usando libgdx?
  • Android Ver agregar niño
  • TextView dentro de ViewPager intercepta eventos de toque
  • ¿Cómo puedo configurar el color de texto de resumen de preferencias de Android?
  • Archivo de sonido grabado (ala google ahora, google keep) - RecognizerIntent / Listener
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.