java - 如何从异步任务更新抽屉导航项目?

标签 java android android-asynctask navigation-drawer

OnCreate 我这样做:

incidentItem = new NavDrawerItem(navMenuTitles[1], navMenuIcons.getResourceId(1, -1));
navDrawerItems.add(incidentItem);

onPostExecute:

incidentItem = new NavDrawerItem(navMenuTitles[1], navMenuIcons.getResourceId(1, -1), true, "10");
adapter.notifyDataSetChanged();

它不起作用,没有错误,没有更新。

最佳答案

假设 navDrawerItems 是一个 Collection

在您的 onCreate 方法中,您创建了一个新的 NavDrawerItem,并将对它的引用存储在 navDrawerItems 集合中。

在您的onPostExecute 方法中,您创建了另一个 新的NavDrawerItem,并且不对引用进行任何操作。您调用 notifyDataSetChanged(),但适配器仍然具有对旧 NavDrawerItem 的引用。

你想在 onPostExecute 中做的是:

  • 检索原始引用,例如navDrawerItems.get(0),并更新其中的数据;
  • 删除原始引用,并添加新引用,就像以前一样。

关于java - 如何从异步任务更新抽屉导航项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23143346/

相关文章:

java - 在 Java 和 golang 中使用 AES 时获得不同的结果(密文)

java - HashSet<User>修改,而user只有最终值 'equals/hashcode'

java - Android - 源端口 800 的 DatagramSocket 不发送

java - 在添加之前检查 Firebase 数据库中是否存在 URL

android - AsyncTask Android 示例

android - 与 Android 中的 AsyncTask 通信?

java - 为什么在循环中使用之前将字段引用复制到本地?

java - Maven JSP 标签库原型(prototype)

android - 如何在 okhttp 库的 header 中发送特殊字符,如 å

java - GCM :Device can send message but not registered