应该在哪里处理listview中的数据更改事件?
问题描述:
我有我的自定义视图从我的适配器填充ListView。每个视图都有两个按钮,一个用于启动另一个活动来编辑该列表项目的内容,另一个用于删除该项目。应该在哪里处理listview中的数据更改事件?
我的问题是我的ClickEvent这些按钮的处理程序应该在哪里?我是否应该将它们放在我的自定义视图代码中,因为我拥有我需要的所有信息?我应该启动一个ASyncTask删除项目并更新适配器数据并调用onDataSetChanged()等?
是否所有这些都会通过事件冒泡到我的ListActivity?
我可以让它在任何级别上工作,但沿着这个层次(Activity-> ListView-> Adapter-> ListItemView)的级别是编辑/删除ListView的后备数据的适当位置吗?
答
我做这种方式:
-
Adapter
■找该做他们的工作,并呼吁在年底notifyDataSetChanged()
底层数据操作(例如public void deleteItem(int position)
)公共方法; -
Activity
在本地变量中保留对其的Adapter
的引用; -
Listener
s通常创建为Activity
的匿名内部类,调用适当的Adapter
方法。