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/