Невозможно изменить цвет текста элементов ListFragment - PullRequest
1 голос
/ 09 марта 2012

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

Из фрагмента списка:

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

Ответы [ 3 ]

1 голос
/ 09 марта 2012

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

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

к этому:

int[] to = {R.id.spinnerItemText};
0 голосов
/ 09 мая 2013

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

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

Замена getApplicationContext на getBaseContext делает свое дело.

0 голосов
/ 09 марта 2012

Мне кажется,

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

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

...