2014-09-26 129 views
0

我有簡單的ListView,並使用ArrayAdapter進行填充。但是比ListView的文本是白色的。之前它是黑色的,現在我得到白色文本。我怎樣才能解決這個問題?它實際上是正確的SlidingDrawer。 我的代碼:android.R.layout.simple_list_item_1 - TextColor是白色 - Android

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

回答

3

它是如此可能是你使用的是Dark theme使文本white

  • 解決方法1

更改主題,以Theme.Light

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

只需添加textColortextView

<?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

你使用SlidingMenu庫?

如果是? 這裏的答案是, SlidingMenu使用的主題是黑暗的ActionBarSherlock風格,這就是爲什麼你的應用程序的文本顏色變成白色。

解決方案:只需添加文字顏色到每一個的listItem的TextView的,而且看到的結果:

android:textColor="#000000" 

如果不是?無論如何,上述解決方案僅適用於 。

2

您可以使用自己的佈局,而不是一個在Android SDK中的解決您的問題。請按照下列步驟:

  1. 添加一個新的命名list_item_black_text佈局在您的項目,然後將其清除並粘貼folloing代碼:
<?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" /> 
  • 更改您的代碼:
  • l vHoroscope.setAdapter(new ArrayAdapter(getApplication(), android.R.layout。simple_list_item_1,星座運勢));

    lvHoroscope.setAdapter(新ArrayAdapter(getApplication(), R.layout.list_item_black_text,星座));

    +0

    謝謝你的建議。我正在使用自定義適配器的自定義佈局,但我只是想知道爲什麼文本是白色的:) – KiKo 2014-09-26 09:46:42

    +0

    謝謝Leog, 我想補充說,API的小於17: android:paddingEnd =「?android:attr/listPreferredItemPaddingEnd」 機器人:paddingStart = 「機器人:ATTR/listPreferredItemPaddingStart」 - 應改爲: 的android:paddingLeft = 「機器人:ATTR/listPreferredItemPaddingLeft」 的android:paddingRight = 「機器人:ATTR/listPreferredItemPaddingRight」? – 2015-05-28 11:23:29

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