Я изучил это при использовании android:entries
с a ListView
, это использует android.R.layout.simple_list_item_1
как расположение для элемента списка и android.R.id.text1
как идентификатор TextView в том расположении. Исправьте меня, если я неправ.
Зная это, я хотел создать свой собственный адаптер, но использовать те же ресурсы расположения для предоставления непротиворечивости UI платформу. Таким образом я попробовал следующее:
mAdapter = new SimpleCursorAdapter(
getApplicationContext(),
android.R.layout.simple_list_item_1,
mSites,
new String[] { SitesDatabase.KEY_SITE },
new int[] { android.R.id.text1 }
);
К сожалению, потому что я использую легкую тему (я имею android:theme="@android:style/Theme.Light"
в моем <application>
), элементы списка появляются с белым текстом, делая их нечитабельными.
Однако при использовании android:entries
для определения статического списка объектов объекты появляются правильно с черным цветом текста.
Что я делаю неправильно? Как я могу заставить свой динамический адаптер использовать стандартное расположение, но работу с легкой темой?
Пожалуйста, поправьте меня, если я ошибаюсь.
Вы по крайней мере отчасти ошибаетесь. Он использует com.android.internal.R.layout.simple_list_item_1
. Хотя он почти идентичен android.R.layout.simple_list_item_1
, он может иметь другую тематику.
Также никогда не используйте getApplicationContext ()
. Просто используйте свою Activity
как Контекст
. Посмотрим, поможет ли это.