如何按位置设置列表视图中特定项目的背景颜色?

ssg*_*gao 5 java mobile android

我想在列表视图中设置特定项目的背景颜色.

我的listview是由ArrayAdapter使用ArrayList生成的.

我在listview中有一个特定的项目,我计划更改背景颜色.

我知道该项目在列表中的位置.

这是我生成列表视图的代码.

respondMessageListView = (ListView) findViewById(R.id.respondMessageListView);
respondMessageListView.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, autoRespondMessages.getMessages()));
Run Code Online (Sandbox Code Playgroud)

谢谢!

[编辑]

根据这篇文章,使用为setSelection使)没有影响,如果在的onCreate(使用的解决办法是"删除方法onAttachedToWindowPullToRefreshListView".我不太了解解决方案.请问我应该怎样做到这一点?我是它的子类Activity,所以我不能继承任何其他类的子类.

zie*_*ikk 2

您必须子类化ArrayAdapter并重写getView(...)方法。为了简单起见,您可以只调用基类实现并设置返回的背景颜色View

编辑:以下示例将项目的背景颜色交替设置为黑色和白色。

private class MyAdapter extends ArrayAdapter {

    ...

    public View getView(int position, View convertView, ViewGroup parent) {
        View v = super.getView(position, convertView, parent);
        v.setBackgroundColor(position % 2 == 0 : 0xff000000, 0xffffffff);
    }
}
Run Code Online (Sandbox Code Playgroud)