android - listview中的数据变化事件应该在哪里处理?

标签 android listview adapter

我有一个 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/

相关文章:

android - 通过 WorkManager API 在每个星期五安排一个特定任务

android - ListView 、onItemClickListener 和 EditText

json - 如何使用 Moshi 以两种不同的方式解析字段

android - 将底部边距添加到 ListView 最后一个元素

android - 不同语言的两个进程是否可以使用UDP进行通信

android - 即使没有数据,ListView 类的备用背景颜色

android - 禁用 ListView 的项目 - 我的代码出现异常

android - 如何将 SimpleCursorAdapter 与 single_choice 和 multiple_choice 一起使用

android - android ListView 中的异常

android - 如何从 android 中的 facebook API 获取所有 friend 的姓名、ID、生日、位置等?