el color de texto del hilandero es blanco?

Yo uso un Spinner dentro de un diseño. Yo uso este código:

... <Spinner android:layout_width="200dp" android:layout_height="wrap_content" android:id="@+id/spin_prod_promo" /> ... 

Ahora, cuando asigno su adaptador utilizo este código:

 ... ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(mcontext, android.R.layout.simple_spinner_item, mylabels); // Drop down layout style dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); Spinner myspinner = (Spinner) V.findViewById(R.id.spin_prod_promo); // attaching data adapter to spinner myspinner.setAdapter(dataAdapter); ... 

Mi problema es que, el color de texto de la ruleta es blanco … por lo tanto ilegible, y no lo configuro para que sea así en cualquier parte del código.

Lo "curioso" es que utilizo el mismo código en una actividad diferente y el Spinner tiene los colores correctos. La diferencia es que en este caso (BAD) la hiladora se encuentra en un fragmento.

  • Así que si el spinner está en una actividad – los colores están bien
  • Si el spinner se encuentra en un fragmento – el color está desordenado

Intenté usar una disposición de encargo para los artículos del hilandero, pero todo lo que sucedí era hacer la mirada del hilandero inhabilitada. Además siempre hay un elemento en el menú desplegable que tiene el color del fondo (sólo se puede ver si hago clic en él, entonces puedo ver el contenido, siempre y cuando mantenga el clic en) ¿Qué está pasando aquí? ¿Como puedó resolver esté problema?

¿Hay algo que pueda hacer para que los colores del hilandero sean los colores del tema? Todos los demás elementos del fragmento tienen colores normales …

Gracias

Contexto mcontext = getActivity (). GetApplicationContext (); ¿Esto esta mal?

Sí, esto está mal. Sólo utilice getApplicationContext() cuando sepa exactamente por qué está utilizando getApplicationContext() . En particular, nunca utilice getApplicationContext() para inflar diseños, ya que se atornilla a las cosas por no utilizar el tema correcto .

Quiero borrar mcontext completo, reemplazándolo con getActivity() donde sea necesario en su fragmento.

Solo prueba esto

 String[]array={"A","B","C","D"}; ArrayAdapter<String> adapter=new ArrayAdapter<String> (**YourClassName.this**,android.R.layout.simple_list_item_checked,array); listView.setAdapter(adapter); 

NOTA YourClassName.this es el nombre de su clase actual.Este código funciona para mí.

Encontré la solución. Es declarar un diseño personalizado para el elemento del Spinner y utilizarlo en lugar del predeterminado. Y en el diseño personalizado, establezco el color del texto de TextView en negro. Funciona de esta manera. Así que el código: (promospin_row.xml)

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="New Text" android:textColor="#000000" android:id="@+id/tv_promo_txt" android:paddingLeft="5dp" android:paddingTop="5dp" /> </LinearLayout> 

y el código java:

  // Creating adapter for spinner ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(mcontext, R.layout.promospin_row, R.id.tv_promo_txt, mylabels); // Drop down layout style dataAdapter.setDropDownViewResource(R.layout.promospin_row); Spinner myspinner = (Spinner) V.findViewById(R.id.spin_prod_promo); // attaching data adapter to spinner myspinner.setAdapter(dataAdapter); 

De esta manera, el texto del elemento se convierte en negro. Y no hay otras anomalías. Gracias @CommonsWare por su tiempo

Sólo utilice null en lugar de getApplicationContext (). Debe funcionar. Lo he probado y su funcionamiento. En su aplicación puede utilizar null en lugar de mcontext

Estaba teniendo este problema también. Esto no es una solución, sino una solución potencial para otros intentar en caso de que las soluciones anteriores no funcionen.

Establecer el color de fondo de la ventana emergente que aparece cuando se selecciona la hiladora a algo que contrasta con el color de texto blanco.

 <Spinner ... android:popupBackground="@color/layout_background" ... /> 

Aquí he definido layout_background como un color gris oscuro # 565656 en un archivo separado llamado colors.xml ubicado en mi carpeta src / main / java / res / values.

Otra solución es utilizar GetApplication() como el contexto en lugar de

getActivity().getApplicationContext();

De esta manera puedo usar el diseño de elementos por defecto sin tener que declarar un nuevo diseño personalizado.

Así que supongo que CommonsWare tenía razón después de todo. Es el contexto el que explotó las cosas. Por favor, @Commonsware, haz tu comentario una respuesta para poder aceptarlo, porque te lo mereces.

EDITAR

Estaba escribiendo esto mientras escribía su respuesta, por eso parece que no vi su respuesta 🙂

Sólo use getBaseContext () en lugar de mcontext. Trabajó para mí. He puesto el adaptador de spinner dentro de la función onItemClick de AutoCompleteTextView y tenía el mismo problema de color de texto hasta que use getBaseContext (). Espero que esta respuesta ayude.

  • Android.R.simple_spinner_adapter no se puede resolver
  • ¿Por qué recibo una respuesta vacía cuando mi aplicación android llama a mi API en mi servidor?
  • Android Cómo recuperar el valor de Spinner añadido dinámicamente
  • Spinner onItemSelected llamado erróneamente (sin acción del usuario)
  • Cómo capturar evento onClick en Android para una ruleta
  • Cómo crear un diálogo de alerta con una ruleta
  • Flip flecha en el androide spinner en la barra de herramientas
  • Cómo ordenar HashMap como agregado en Android con ArrayAdapter
  • Spinner: infla la excepción al usar AppCompat
  • ¿Cómo puedo invocar una acción en la misma selección de valor de spinner
  • Cómo mantener onItemSelected de disparar en un Spinner recién instanciado?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.