如何更改默认多选列表视图中的文本颜色?

时间:2014-01-04 06:21:52

标签: android listview android-listview

我有多选列表视图,默认背景颜色为黑色,文本颜色为白色。当我将背景颜色改为白色时,我无法更改多项选择列表视图文本颜色。除了自定义列表视图如何更改文字颜色?

enter image description here

Listview XMl:

<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:choiceMode="multipleChoice"/>

Android代码:

 ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_multiple_choice, My_arr);

2 个答案:

答案 0 :(得分:1)

尝试实施您自己的ArrayAdapter并覆盖getView()方法:

public class MyAdapter extends ArrayAdapter<String> {

public MyAdapter(Context context, int p_resID, ArrayList<String> p_items) {
    super(context, p_resID, p_items);                       
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    View v = super.getView(position, convertView, parent);
        ((TextView) v).setTextColor(Color.GREEN); 
    return v;
}

}

不要忘记提供一个替代的else子句来将颜色设置为默认值,以便在处理循环行时没有问题。然后在你的活动中:

 setListAdapter(new MyAdapter(this,R.layout.list_item,My_arr));

<强> list_item.xml

 <?xml version="1.0" encoding="utf-8"?>
  <CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/text1"
    android:layout_width="match_parent"
    android:layout_height="?android:attr/listPreferredItemHeightSmall"
    android:textAppearance="?android:attr/textAppearanceListItemSmall"
    android:gravity="center_vertical"
    android:checkMark="?android:attr/listChoiceIndicatorMultiple"
    android:paddingStart="?android:attr/listPreferredItemPaddingStart"
    android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
    android:textColor="#FF0000"
   />

答案 1 :(得分:0)

您可以轻松地执行此操作,此布局上的文本布局会以这种方式更改TextView的颜色android:textColor="hashcode of color"

享受!!!