Impossible de changer la couleur du texte des éléments ListFragment
-
09-12-2019 - |
Question
J'ai un ListFragment rempli à partir d'un curseur.J'ai l'arrière-plan de la liste défini sur blanc et, pour une raison quelconque, le texte est également défini sur blanc.J'ai essayé de modifier l'attribut textColor dans le fichier XML de mise en page, mais cela ne semble pas avoir d'effet.Quelqu'un peut-il signaler ce qui me manque ?Merci.
À partir du 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);
}
La disposition des éléments de liste :
<?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" />
La solution
Je soupçonne que le texte n'est pas blanc, ce n'est tout simplement pas montrant que vous liez le mauvais TextView.Je pense que vous devez changer cette ligne:
int[] to = {android.R.id.text1};
à ceci:
int[] to = {R.id.spinnerItemText};
Autres conseils
Je crois
android:textAppearance="?android:attr/textAppearanceLarge"
fait votre texte blanc.Je ne sais pas pourquoi définir TextColor ne remplace pas la couleur, mais vous pouvez essayer de créer votre propre style avec la couleur spécifiée là-bas
Essaye ça :
adapter = new SimpleCursorAdapter(getActivity().getBaseContext(),
R.layout.simple_spinner_drop_down_view, null, from, to,
CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER);
Remplacement getApplicationContext
avec getBaseContext
fait l'affaire.