5

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

我的列表视图是由 ArrayAdapter 使用 ArrayList 生成的。

我计划更改背景颜色的列表视图中有一个特定项目。

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

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

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

谢谢!

[编辑]

根据这篇文章,如果在 onCreate() 中使用 setSelection,则使用 setSelection 无效,解决方法是“删除中的方法onAttachedToWindowPullToRefreshListView。我不太了解解决方案。请问我应该如何做到这一点?我是 的子类Activity,所以我不能再将任何其他类子类化。

4

2 回答 2

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);
    }
}
于 2012-09-25T04:16:34.047 回答
0

此代码适用于您选择列表项时。

试试这个代码...

listview.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> myAdapter, View myView, int pos, long mylng) {

             if( pos == 1) {
                   // to change the listview background
                   listview.setBackgroundColor(getResources().getColor(R.color.your_color_id));

                   // to change the selected item background color
                   myView.setBackgroundColor(getResources().getColor(R.color.your_color_id));
             }
            }
          });

祝你好运。

于 2012-09-25T05:21:26.867 回答