2

我正在使用导航抽屉列出主菜单项。菜单项之一是新测验或简历测验。如果没有现有的测验,则菜单项将显示新测验(在导航抽屉中)。选择“新测验”选项后,用户将遇到问题。当按下后退按钮时,在主菜单中,导航抽屉仍然显示新测验选项,而不是继续测验。如何使 backstack 上的活动的 UI 无效?

谢谢你。

4

2 回答 2

-1

我通过创建菜单项的 ArrayList(而不是 String 对象的数组)来解决这个问题。然后清除适配器的内容,并在适配器中添加前面提到的数组列表,并在适配器上调用 notifyDataSetChanged。

List<String> list = new ArrayList<String>();
for(int counter = 0; counter < mMenuItems.length; counter++) {
    list.add(mMenuItems[counter]);
}
((ArrayAdapter<String>)mDrawerList.getAdapter()).clear();
((ArrayAdapter<String>)mDrawerList.getAdapter()).addAll(list);
((ArrayAdapter<String>)mDrawerList.getAdapter()).notifyDataSetChanged();
于 2013-11-08T14:13:19.007 回答
-1
  public void onDrawerOpened(View drawerView) {
            getSupportActionBar().setTitle(mDrawerTitle);

            invalidateOptionsMenu();
            adapter.notifyDataSetInvalidated();
        }
于 2015-05-18T11:55:51.570 回答