我已经处理了android清单中的屏幕旋转配置更改,这适用于对话主题活动,但是对于这些菜单组,在我旋转屏幕时选择菜单项(在onOptionsItemSelected中)时仍然关闭。我可以在onConfigurationChanged中处理这些吗?或者,还有更好的方法?我附上了打开子菜单的代码。
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getGroupId() == R.id.submenu) {
if (item.getItemId() == this.submenu) {
return true;
}
this.value = item.getItemId();
item.setChecked(true);
//do something with value
return true;
}
//...
return super.onOptionsItemSelected(item);
}
答案 0 :(得分:3)
您需要覆盖
@Override
public void onConfigurationChanged(Configuration newConfig) {
// TODO Auto-generated method stub
super.onConfigurationChanged(newConfig);
}
但要做到这一点,您必须通过在活动级别添加标签
来指定您将自己处理的配置更改。 android:configChanges=["mcc", "mnc", "locale",
"touchscreen", "keyboard", "keyboardHidden",
"navigation", "orientation", "screenLayout",
"fontScale", "uiMode"]
onPfigurationChanged上的保存状态并在onResume上重新加载
答案 1 :(得分:0)
这最终成为一个非常简单的修复。我需要在AndroidManifest中为我的活动添加行android:configChanges="orientation"
。