我想在 ListView 中设置特定项目的背景颜色。
我的 ListView 是由 ArrayAdapter 使用 ArrayList 生成的。
我计划更改 ListView 中的特定项目的背景颜色。
我知道该项目在列表中的位置。
这是我生成 ListView 的代码。
respondMessageListView = (ListView) findViewById(R.id.respondMessageListView);
respondMessageListView.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, autoRespondMessages.getMessages()));
谢谢!
[编辑]
根据 this post ,如果在 onCreate() 中使用,则使用 setSelection 无效,解决方法是“删除 PullToRefreshListView
中的方法 onAttachedToWindow
”。我不太了解解决方案。请问我该如何实现呢?我是 Activity
的子类,所以我不能再继承任何其他类。
最佳答案
您必须继承 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);
}
}
关于java - 如何按位置设置 ListView 中特定项目的背景颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12576103/