【问题标题】:Where should data changing event in listview be handled?列表视图中的数据更改事件应该在哪里处理?
【发布时间】:2010-07-14 02:08:56
【问题描述】:

我有一个 ListView,它从我的适配器中填充了我的自定义视图。每个视图都有两个按钮,一个用于启动另一个活动以编辑该列表项的内容,另一个用于删除该项目。

我的问题是这些按钮的 ClickEvent 处理程序应该在哪里?既然我有我需要的所有信息,我应该把它们放在我的自定义视图代码中吗?我应该启动一个 ASyncTask 来删除项目并更新适配器数据并调用 onDataSetChanged() 等吗?

是否应该通过事件将所有这些都显示到我的 ListActivity 中?

我可以让它在任何级别上工作,但是在这个层次结构中的哪个级别(Activity->ListView->Adapter->ListItemView)是编辑/删除 ListView 支持数据的合适位置?

【问题讨论】:

    标签: android listview adapter


    【解决方案1】:

    我是这样做的:

    • Adapters 具有用于底层数据操作的公共方法(例如 public void deleteItem(int position)),它们完成他们的工作并最终调用 notifyDataSetChanged()
    • Activity 在局部变量中保留对 Adapter 的引用;
    • Listeners 通常创建为 Activity 的匿名内部类,调用适当的 Adapter 方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-26
      • 1970-01-01
      • 2015-06-12
      • 2014-12-25
      • 2010-12-06
      • 2021-01-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多