2011-04-06 111 views
13

我試圖改變文本顏色ListView但我不能找到該怎麼做.. <更改ListView的文本顏色

listViewObject= (ListView) findViewById(R.id.chathlist);   
    ArrayList<String> chatHistory = new ArrayList<String>(); 
    chatHistory.add("Msg 1"); 
    chatHistory.add("Msg 2"); 
    chatHistory.add("Msg 3"); 
    chatHistory.add("Msg 4"); 
    chatHistory.add("Msg 5"); 
    chatHistory.add("Msg 6"); 
    chatHistory.add("Msg 7"); 
    ArrayAdapter aa=new ArrayAdapter<String>(getApplicationContext(), 
    android.R.layout.simple_list_item_1, chatHistory); 
    listViewObject.setAdapter(aa); 
    listViewObject.invalidate(); 

我已經嘗試了許多方法,但我不能改變顏色。這可能是一件簡單的事情,但我正在爲此而戰。

我的XML文件是

<RelativeLayout android:id="@+id/chat_history_container" 
      android:layout_width="fill_parent" android:layout_height="wrap_content"> 
      <ListView android:paddingTop="15dip" android:paddingBottom="15dip" 
       android:layout_width="fill_parent" android:paddingLeft="15dip" 
       android:layout_height="wrap_content" android:id="@+id/chathlist" 
       android:layout_gravity="center_horizontal" 
       android:layout_centerInParent="true" android:paddingRight="15dip" 
       android:textColor="#FF0000" android:listSelector="@drawable/gradient_box" > 
      </ListView> 
    </RelativeLayout> 

回答

6

的問題是,你使用的是默認的列表項佈局「android.R.layout.simple_list_item_1」。如果要更改列表視圖中文本的顏色,則必須使用正確的文本顏色創建自己的列表項佈局。

你可以將該產品添加到您的佈局文件夾:

<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@android:id/text1" 
     style="?android:attr/listItemFirstLineStyle" 
     android:paddingTop="2dip" 
     android:paddingBottom="3dip" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:textColor="#FF0000" /> 

然後通過這個項目,而不是android.R.layout.simple_list_item_1

+0

如果你的listview設置爲singleChoice來顯示RadioButton,這當然是沒用的。編寫自己的自定義佈局然後需要開發自己的適配器和更多的代碼。如果所有列表都沒有顯示任何內容,但是沒有單選按鈕的文本項目,則表示解決方案沒有問題。 – AndroidDev 2013-01-07 09:19:37