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