android.R.layout.simple_list_item_1 - TextColor是白色的 - Android

时间:2014-09-26 03:22:22

标签: android android-listview

我有简单的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));

Image 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" />

4 个答案:

答案 0 :(得分:3)

您可能正在使用Dark theme,因此文字为white

  • 解决方法1

将主题更改为Theme.Light

<style name="LightThemeSelector" parent="android:Theme.Light">
...
</style>
  • 溶液2

只需将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中的布局来解决您的问题。请按照以下步骤操作:

  1. 在项目中添加名为list_item_black_text的新布局,然后清除它并粘贴以下代码:
  2. <?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.   

      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;
            }
        };