我有一个ListView与ListFragment中的自定义项目的应用程序。应用程序的目的是一张清单,其中包含任务,可以更改背景颜色并在选中时添加复选标记。Android:在ListView中更改单个项目的属性
现在的任务时,选择它传递这个信息来连接SQLite的-DB和重新加载适配器。通过if语句,它会检查任务是否完成,如果是,则会添加复选标记并更改背景。 这一切工作正常,但当我有更多的任务超过屏幕可以容纳它跳转到顶部时重新加载适配器,标准的行为。
我一直在尝试与此页上的信息:Android: Is it possible to refresh just one item in a listview? 而这个信息已经相当有帮助:
View v = listViewItems.getChildAt(position -
listViewItems.getFirstVisiblePosition());
v.setBackgroundColor(Color.GREEN);
我自己的实现是这样的:
private void updateView(int index){
View v = getListView().getChildAt(index -
getListView().getFirstVisiblePosition());
if(v == null)
return;
v.setBackgroundColor(getResources().getColor(R.color.finished_bg));
IconTextView itv = (IconTextView) v.findViewById(R.id.task_item_icontextview);
itv.setVisibility(View.VISIBLE);
}
这里是哪里它变得棘手。
1:它改变的背景下,非常好的,但是当我向上或向下滚动和项目离开屏幕,然后重新进入的背景是回到它的标准色。 如何确保颜色保持这种状态?
2:该复选标记根本不显示。我是否提供错误的参考?这种方法甚至可以改变属性吗?
感谢您的回答,但我无法找到选择一个选项来选择项目,并保持它的选择,同时还整理等任务。可以尝试接受多种选择,但我不认为这是做这件事的最好方法。 复选标记是IconTextView(Iconify),而不是复选框。 – Daemun