我有一个列表视图。在该列表视图中,我必须灰显并禁用某些项目,并启用具有单独颜色的其余列表项目。怎么做?
答案 0 :(得分:5)
您应该为ListView编写一个扩展BaseAdapter的自定义适配器。要禁用某些项目,您必须覆盖此适配器中的“boolean isEnabled(int position)”,并为您要禁用的每个位置返回false。
至于更改某些列表元素的背景颜色:您可以将背景颜色值存储在您正在显示的数据结构中。在自定义适配器的'getView()'方法中,您应检查当前元素的此颜色值,并返回具有正确背景颜色集的视图。
或者你可以在ListView上调用'getChildAt()',获取列表中所需元素的View对象,并更改它的背景颜色。我想我宁愿使用以前的解决方案。
在进行这样的更改后,请记得在ListView的适配器上调用'notifyDataSetChanged()'。