小编典典

notifyDataSetChanged 示例

all

我正在尝试在我Android ApplicationnotifyDataSetChanged()方法中使用,ArrayAdapter但它对我不起作用。

我在这里找到了答案,它notifyDataSetChanged()应该在主线程中运行,但是没有示例。

任何人都可以发送一个示例或至少一个链接吗?!


阅读 63

收藏
2022-08-19

共1个答案

小编典典

对于ArrayAdapter,notifyDataSetChanged仅当您在适配器上
使用add()insert()remove()和时才有效。clear()

构造an 时ArrayAdapter,它保存List传入的 的引用。如果您要传入List作为 Activity 成员的 a ,并稍后更改该
Activity 成员,ArrayAdapter则 仍然持有对原始 . 的引用List。Adapter 不知道你List在 Activity
中改变了。

您的选择是:

  1. 使用 的函数ArrayAdapter修改底层列表(add()insert()remove()clear()等)
  2. ArrayAdapter使用新List数据重新创建。(使用大量资源和垃圾收集。)
  3. 创建您自己的派生类,BaseAdapterListAdapter允许更改基础List数据结构。
  4. notifyDataSetChanged()每次更新列表时使用。要在 UI 线程上调用它,请使用runOnUiThread(). Activity然后,notifyDataSetChanged()将工作。
2022-08-19