【问题标题】:notifyDataSetChanged method not working with BaseAdapter and ListView [duplicate]notifyDataSetChanged 方法不适用于 BaseAdapter 和 ListView [重复]
【发布时间】:2017-11-30 09:07:18
【问题描述】:

我正在使用带有listview 的基本适配器在我的项目中显示带有学生姓名的图片。没关系。但在那之后,当学生从他们的应用程序中更改图片时,我使用 Handler 来动态更新图片。它没有按预期工作。

基本适配器正在从本地 SQLite DB 获取数据 (ArrayList),而 SQLite 正在通过处理程序中的 AsyncTask 从服务器获取数据。第一次显示所有学生的图像和姓名很好,但图像动态更新不起作用。

每当适配器的基础数据发生变化时,我都会使用notifyDataSetChanged 方法。我也试过SimpleAdapterArrayAdapter,但问题仍然存在。我该怎么办???

【问题讨论】:

  • 请添加您尝试过的代码sn-p寻求帮助

标签: android listview baseadapter


【解决方案1】:

Base-adapterArray Adapter 你已经使用了notifyDataSetChanged 方法但是这个方法的工作原理是,如果你的适配器的数据发生了变化,那么它会根据数据更新你的视图。但是如果你更新数据库中的数据,那么它不会有任何变化,你的视图也不会更新,所以你需要为它重置你的adapter

【讨论】:

  • 实际上我每次都使用一种方法,其中适配器的引用数据是在data.clear()之后从数据库游标全新形成的。一切都很完美(我在列表视图刷新之前通过数据库查询进行了检查)但是 notifyDatasetChanged() 没有刷新列表视图。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-04
  • 1970-01-01
相关资源
最近更新 更多