我有两个列表listArray
和itemStateList
。
listArray
包含要在ListView
中显示的文字,而itemStateList
包含用于设置ListView
中背景的颜色名称。但setBackgroundColor(Color.parseColor("#AAFF7F"))
无效。
这是代码..
public void createAndSetAdapter(){
ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, listArray);
listView.setAdapter(adapter);
for(int i = 0; i < listArray.size(); i++){
switch (itemStateList.get(i)){
case "Green_color":
listView.getAdapter().getView(i, null, listView).setBackgroundColor(Color.parseColor("#AAFF7F"));
break;
case "red_color":
listView.getAdapter().getView(i, null, listView).setBackgroundColor(Color.parseColor("#FFAAAA"));
break;
default:
break;
}
}
}
为了检查listView.getAdapter().getView(i, null, listView)
是否正在返回视图,我运行((TextView)listView.getAdapter().getView(i, null, listView)).getText.toString()
并返回文本。
答案 0 :(得分:1)
尝试使用:
listView.getAdapter().getView(i, null, listView).setBackgroundResource(R.color.black);
希望这会有所帮助!!
答案 1 :(得分:1)
首先在drawable中创建一个xml文件,像这样
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/listview_background_shape">
<stroke
android:width="1dp"
android:color="#ffffff" />
<padding
android:bottom="2dp"
android:left="2dp"
android:right="2dp"
android:top="2dp" />
<corners android:radius="5dp" />
<solid android:color="@color/Transparent80" />
</shape>
然后将其用作
listView.getAdapter().getView(i, null, listView).setBackgroundResource(R.drawbale.xml_color_bg);