如何在Android上的ListView(或ListActivity)中设置单元格的背景颜色或图像?

时间:2012-10-15 21:11:44

标签: java android eclipse listview listactivity

如何在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
));

2 个答案:

答案 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;
    }
});