我有一个 ListView,它从我的适配器中填充了我的自定义 View 。每个 View 都有两个按钮,一个用于启动另一个 Activity 以编辑该列表项的内容,一个用于删除该项目。
我的问题是这些按钮的 ClickEvent 处理程序应该放在哪里?既然我拥有我需要的所有信息,我应该把它们放在我的自定义 View 代码中吗?我应该启动一个 ASyncTask 来删除项目并更新适配器数据并调用 onDataSetChanged() 等吗?
所有这些都应该通过事件冒泡到我的 ListActivity 吗?
我可能可以让它在任何级别工作,但是在这个层次结构(Activity->ListView->Adapter->ListItemView)的哪个级别是编辑/删除 ListView 支持数据的合适位置?
最佳答案
我是这样做的:
Adapter
具有用于底层数据操作的公共(public)方法(例如public void deleteItem(int position)
),这些方法完成它们的工作并调用notifyDataSetChanged()
最后;Activity
在局部变量中保留对它的Adapter
的引用;Listener
通常创建为Activity
调用适当的Adapter
方法的匿名内部类。
关于android - listview中的数据变化事件应该在哪里处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3242911/