我有多选列表视图,默认背景颜色为黑色,文本颜色为白色。当我将背景颜色改为白色时,我无法更改多项选择列表视图文本颜色。除了自定义列表视图如何更改文字颜色?
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);
答案 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"
享受!!!