I have learned that when using android:entries with a ListView, it uses android.R.layout.simple_list_item_1 as the layout for a list item and android.R.id.text1 as the ID of the TextView inside that layout. Please, correct me if I'm wrong.
Knowing this, I wanted to create my own adapter but use the same layout resources, in order to provide UI consistency with the platform. Thus, I tried the following:
mAdapter = new SimpleCursorAdapter(
getApplicationContext(),
android.R.layout.simple_list_item_1,
mSites,
new String[] { SitesDatabase.KEY_SITE },
new int[] { android.R.id.text1 }
);
Unfortunately, because I am using a light theme (I have android:theme="@android:style/Theme.Light" in my <application>), the list items appear with white text, making them unreadable.
However, when using android:entries to specify a static list of items, the items appear correctly, with black text color.
What am I doing wrong? How can I make my dynamic adapter use the standard layout but work with a light theme?
Please, correct me if I'm wrong.
You are at least sorta wrong. It uses com.android.internal.R.layout.simple_list_item_1. While that is nearly identical to android.R.layout.simple_list_item_1, it may be themed differently.
Also, never use getApplicationContext(). Just use your Activity as the Context. See if that helps.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With