按下后退按钮时刷新导航抽屉的菜单项

时间:2013-11-08 01:46:24

标签: android android-activity navigation-drawer back-stack

我正在使用导航抽屉列出主菜单项。其中一个菜单项是New Quiz或Resume Quiz。如果没有现有测验,则菜单项将显示新测验(在导航抽屉中)。选择“新测验”选项后,将向用户显示问题。按下后退按钮时,在主菜单中,导航抽屉仍然显示新测验选项而不是恢复测验。如何使backstack上的活动的UI无效?

谢谢。

2 个答案:

答案 0 :(得分:0)

我通过创建菜单项的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();

答案 1 :(得分:0)

  public void onDrawerOpened(View drawerView) {
            getSupportActionBar().setTitle(mDrawerTitle);

            invalidateOptionsMenu();
            adapter.notifyDataSetInvalidated();
        }