2012-03-08 4 views
1

У меня есть ListFragment, заполненный курсором. У меня есть фон списка, установленный на белый, и по какой-либо причине текст также имеет белый цвет. Я попытался изменить атрибут textColor в макете xml, но он, похоже, не имеет никакого эффекта. Может кто-нибудь указать, что мне не хватает? Благодарю.Невозможно изменить цвет текста элементов ListFragment

От 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); 
} 

Список элементов макета:

<?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" /> 

ответ

1

Я подозреваю, что текст не белый, он просто не отображается, re привязки к неправильному TextView. Я думаю, что вам нужно изменить эту строку:

int[] to = {android.R.id.text1}; 

к этому:

int[] to = {R.id.spinnerItemText}; 
+0

Вот и все. Я использовал «android.R.layout.simple_list_item_1», но этот текст белый и не работал, поэтому я использовал свой собственный. Похоже, я просто забыл обновить привязку. Спасибо, что заметили это. – Spencer

0

Я считаю

android:textAppearance="?android:attr/textAppearanceLarge" 

делает текст белым. Я не уверен, почему установка textColor не переопределяет цвет, но вы можете попробовать создать свой собственный стиль с указанным там цветом

0

Попробуйте это:

adapter = new SimpleCursorAdapter(getActivity().getBaseContext(), 
     R.layout.simple_spinner_drop_down_view, null, from, to, 
     CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER); 

Замена getApplicationContext с getBaseContext делает трюк.

Смежные вопросы