如何在Android上的ListView(或ListActivity)中设置单元格的背景颜色或图像?
这是一个非常简单的ListView,其中只有几个项目,没有其他自定义。我不想更改文本或文本颜色或大小或类似的东西,我只想更改ListView中单元格的颜色或背景图像。
在代码(不是布局XML)中执行此操作的最简单方法是什么?
以下是我在ListActivity中使用的代码:
listitems.add("1");
listitems.add("2");
listitems.add("3");
this.getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE);
setListAdapter(new ArrayAdapter<String>(
this,
android.R.layout.simple_list_item_checked,
listitems
));
答案 0 :(得分:4)
尝试使用以下内容扩展ArrayAdapter:
public static class MyAdapter extends ArrayAdapter<String>{
...
@Override
public View getView(int p, View v, ViewGroup g){
v = super.getView(p, v, g);
v.setBackgroundColor(0xffff0000);
return v;
}
}
例如,这会使每个项目视图的背景变为红色。
答案 1 :(得分:2)
感谢newbyca带领我朝着正确的方向前进。这就是我想要的,实际上是最好的答案,因为它是最容易实现的代码:
setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_checked, listitems) {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = super.getView(position, convertView, parent);
//v.setBackgroundColor(0xffff0000); // COLOR
v.setBackgroundResource(R.drawable.plaincell); // IMAGE
return v;
}
});