2

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

2 回答 2

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;
    }

}

例如,这将使每个项目视图的背景变为纯红色。

于 2012-10-15T21:29:57.793 回答
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;
    }
});
于 2012-10-15T21:56:39.987 回答