我有简单的ListView,并使用ArrayAdapter填充。但是ListView的文本是白色的。以前它是黑色的,现在我得到白色文字。我怎样才能解决这个问题?它实际上是正确的SlidingDrawer。 我的代码:
lvHoroscope = (ListView) findViewById(R.id.lvHoroscope);
String[] horoscope = getApplication().getResources().getStringArray(R.array.horoscope);
lvHoroscope.setAdapter(new ArrayAdapter<String>(getApplication(),
android.R.layout.simple_list_item_1, horoscope));
android.R.layout.simple_list_item_1.xml
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:minHeight="?android:attr/listPreferredItemHeightSmall"
android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
android:paddingStart="?android:attr/listPreferredItemPaddingStart"
android:textAppearance="?android:attr/textAppearanceListItemSmall" />
答案 0 :(得分:3)
您可能正在使用Dark theme
,因此文字为white
将主题更改为Theme.Light
<style name="LightThemeSelector" parent="android:Theme.Light">
...
</style>
只需将textColor
添加到textView
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:textColor="#000000"
android:minHeight="?android:attr/listPreferredItemHeightSmall"
android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
android:paddingStart="?android:attr/listPreferredItemPaddingStart"
android:textAppearance="?android:attr/textAppearanceListItemSmall" />
答案 1 :(得分:2)
您可以使用自己的布局而不是Android Sdk中的布局来解决您的问题。请按照以下步骤操作:
<?xml version="1.0" encoding="utf-8"?> <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/text1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_vertical" android:textColor="#000000" android:minHeight="?android:attr/listPreferredItemHeightSmall" android:paddingEnd="?android:attr/listPreferredItemPaddingEnd" android:paddingStart="?android:attr/listPreferredItemPaddingStart" android:textAppearance="?android:attr/textAppearanceListItemSmall" />
lvHoroscope.setAdapter(new ArrayAdapter(getApplication(), android.R.layout.simple_list_item_1,星座));
到
lvHoroscope.setAdapter(new ArrayAdapter(getApplication(), R.layout.list_item_black_text,horoscope));
答案 2 :(得分:1)
您使用过SlidingMenu库吗?
如果是的话? 这是答案, SlidingMenu使用ActionBarSherlock样式,主题是黑暗的,这就是为什么应用程序的文本颜色变为白色的原因。
解决方案:只需将textColor添加到listItem的每个textview中,然后查看结果:
android:textColor="#000000"
如果没有? 只是对上面的解决方案。
答案 3 :(得分:1)
无需创建任何额外内容即可轻松完成此操作,只需修改简单列表TextView
:
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, android.R.id.text1, strings) {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
TextView textView = (TextView) super.getView(position, convertView, parent);
textView.setTextColor({yourColorHere}));
return textView;
}
};