2011-05-20 31 views
0

我已经处理了Android清单中的屏幕旋转配置更改,该更改适用于对话主题活动,但是对于这些菜单组(选择菜单项后打开)在onOptionsItemSelected)仍然关闭,当我旋转屏幕。我可以在onConfigurationChanged中处理这些吗?或者,还有更好的方法?我附上了打开子菜单的代码。如何在旋转android设备时保持菜单项组打开

@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

这个e作为一个非常简单的修复。我需要将行android:configChanges="orientation"添加到我在AndroidManifest中的活动中。

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"] 
自己处理

onConfigurationChanged保存状态并重新载入onResume

+0

Hazem,谢谢你的回应。我在清单文件中有这个变量(并且我覆盖onConfigurationChanged),并且它成功处理方向和键盘变化:'android:configChanges =“orientation | keyboard”'。不幸的是,这仍然导致小组关闭。是否有一个活动configChanges变量,将保持这个菜单项打开? – Phil 2011-05-20 19:19:12

相关问题