我了解到,当android:entries
与ListView
一起使用时,它使用android.R.layout.simple_list_item_1
作为列表项的布局,使用android.R.id.text1
作为TextView内部的ID布局。如果我错了,请纠正我。
知道这一点,我想创建自己的适配器,但使用相同的布局资源,以便提供与平台的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
指定静态项目列表时,项目会正确显示,并带有黑色文字颜色。
我做错了什么?如何使我的动态适配器使用标准布局,但使用轻量主题?
答案 0 :(得分:15)
如果我错了,请纠正我。
你至少有点不对劲。它使用com.android.internal.R.layout.simple_list_item_1
。虽然这与android.R.layout.simple_list_item_1
几乎完全相同,但可能会有不同的主题。
此外,请勿使用getApplicationContext()
。只需使用Activity
作为Context
即可。看看是否有帮助。