我正在使用导航抽屉列出主菜单项。菜单项之一是新测验或简历测验。如果没有现有的测验,则菜单项将显示新测验(在导航抽屉中)。选择“新测验”选项后,用户将遇到问题。当按下后退按钮时,在主菜单中,导航抽屉仍然显示新测验选项,而不是继续测验。如何使 backstack 上的活动的 UI 无效?
谢谢你。
我正在使用导航抽屉列出主菜单项。菜单项之一是新测验或简历测验。如果没有现有的测验,则菜单项将显示新测验(在导航抽屉中)。选择“新测验”选项后,用户将遇到问题。当按下后退按钮时,在主菜单中,导航抽屉仍然显示新测验选项,而不是继续测验。如何使 backstack 上的活动的 UI 无效?
谢谢你。
我通过创建菜单项的 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();
public void onDrawerOpened(View drawerView) {
getSupportActionBar().setTitle(mDrawerTitle);
invalidateOptionsMenu();
adapter.notifyDataSetInvalidated();
}