如何在旋转Android设备时保持菜单项组保持打开状态

时间:2011-05-20 16:41:52

标签: android menu rotation android-configchanges

我已经处理了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);
}

2 个答案:

答案 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"