使用具有浅色主题的android.R.layout.simple_list_item_1

时间:2010-06-08 21:33:46

标签: android listview themes

我了解到,当android:entriesListView一起使用时,它使用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指定静态项目列表时,项目会正确显示,并带有黑色文字颜色。

我做错了什么?如何使我的动态适配器使用标准布局,但使用轻量主题?

1 个答案:

答案 0 :(得分:15)

  

如果我错了,请纠正我。

你至少有点不对劲。它使用com.android.internal.R.layout.simple_list_item_1。虽然这与android.R.layout.simple_list_item_1几乎完全相同,但可能会有不同的主题。

此外,请勿使用getApplicationContext()。只需使用Activity作为Context即可。看看是否有帮助。