Intereting Posts
Значение ошибки Android Studio: переопределенные параметры аннотированных параметров @NonNull Как установить идентификатор для элементов всплывающего меню, которые можно найти как идентификатор вида? IllegalStateException: база данных уже закрыта (с использованием ViewPager) Thread.sleep останавливает все вложенные Asyntasks Функция оптимизации Google Play предлагает перевод на английский (США) на английский (Великобритания) Как уменьшить ссылочную строку для виджетов в Android? Когда использовать handler.post () и когда в новую тему () Нужно ли добавлять фильтр намерений при запуске службы? Откуда этот тост? Does Canvas.getClipBounds выделяет объект Rect? TextView.setTextSize ведет себя ненормально – Как установить размер текста текстового вида динамически для разных экранов Исключить некоторые элементы из анимированных в переходах макета Android Модернизация: как исправить "разрешен только один метод http. Found: get and get "? Два пользовательских интерфейса панели с фрагментами и отдельными действиями Плавающая этикетка Spinner?

Используйте android.R.layout.simple_list_item_1 с легкой темой

Я узнал, что при использовании android:entries с ListView он использует android.R.layout.simple_list_item_1 как макет для элемента списка и android.R.id.text1 как идентификатор TextView внутри этого макета. Пожалуйста, поправьте меня, если я ошибаюсь.

Зная это, я хотел создать свой собственный адаптер, но использовать те же ресурсы макета, чтобы обеспечить согласованность интерфейса с платформой. Таким образом, я попробовал следующее:

 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 как Context . Посмотрите, поможет ли это.