No se puede cambiar el color de texto de los elementos de listfragment
-
09-12-2019 - |
Pregunta
Tengo una lista de listos poblados de un cursor.Tengo el fondo de la lista establecido en blanco, y por alguna razón, el texto también se establece en blanco.He intentado cambiar el atributo TextColor en el diseño XML, pero no parece tener ningún efecto.¿Alguien puede señalar lo que me falta?Gracias.
de la listfragment:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
String[] from = {DBConstants.COL_FAMILY_NAME};
int[] to = {android.R.id.text1};
getLoaderManager().initLoader(FAMILY_LOADER, null, this);
adapter = new SimpleCursorAdapter(getActivity().getApplicationContext(), R.layout.simple_spinner_drop_down_view, null, from, to, CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER);
setListAdapter(adapter);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
registerForContextMenu(getListView());
getListView().setBackgroundResource(android.R.color.white);
getListView().setCacheColorHint(android.R.color.transparent);
}
El diseño del elemento de lista:
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/spinnerItemText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="15dip"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="#000000" />
Solución
Sospecho que el texto no es blanco, simplemente no se muestra porque está vinculando a la vista de texto incorrecta.Creo que necesitas cambiar esta línea:
int[] to = {android.R.id.text1};
a esto:
int[] to = {R.id.spinnerItemText};
Otros consejos
creo
android:textAppearance="?android:attr/textAppearanceLarge"
está haciendo que su texto sea blanco.No estoy seguro de por qué configurar TextColor no está anulando el color, pero puede intentar hacer su propio estilo con el color especificado allí
Intenta esto:
adapter = new SimpleCursorAdapter(getActivity().getBaseContext(),
R.layout.simple_spinner_drop_down_view, null, from, to,
CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER);
Reemplazo de getApplicationContext
con getBaseContext
hace el truco.