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