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