2011-05-20 66 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