我希望我的主菜單中的菜單按鈕始終處於打開狀態。我用過:保持Android菜單始終處於打開狀態:onOptionsMenu
@Override
public void onAttachedToWindow() {
super.onAttachedToWindow();
openOptionsMenu();
}
當我去活動時打開菜單。但是,當我按菜單按鈕選項轉到另一個活動並按下後退按鈕時,菜單消失,並且要求我按下「菜單」鍵才能恢復。我希望菜單在任何時候都保持開放狀態,以便進行此特定活動。
我試圖重寫活動的onBackPressed:
@Override
public void onBackPressed(){
super.onBackPressed();
this.openOptionsMenu();
}
我累了,在OnCreate添加this.openOptionsMenu。當我這樣做,我與錯誤應用程序崩潰:
9月12日至17日:19:46.674:ERROR/AndroidRuntime(4940):致命異常:主要 9月12日至17日:19:46.674:ERROR/AndroidRuntime( 4940):java.lang.RuntimeException:無法啓動活動ComponentInfo {com.cmu.community/com.cmu.community.HomeActivity}:android.view.WindowManager $ BadTokenException:無法添加窗口 - 標記null無效;你的活動正在運行? 12 - 17 09:19:46.674:ERROR/AndroidRuntime(4940):at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663) 12-17 09:19:46.674:ERROR/AndroidRuntime(4940):at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 12-17 09:19:46.674:ERROR/AndroidRuntime(4940):at android.app.ActivityThread.access $ 2300(ActivityThread.java:125) 12- 17 09:19:46.674:錯誤/ AndroidRuntime(4940):at android.app.ActivityThread $ H.handleMessage(ActivityThread.java:2033) 12-17 09:19:46.674:ERROR/AndroidRuntime(4940):at android .os.Handler.dispatchMessage(Handler.java:99) 12-17 09:19:46.674:ERROR/AndroidRuntime(4940):at android.os.Looper.loop(Looper.java:123) 12-17 09 :19:46.674:錯誤/ AndroidRuntime(4940):在android.app.ActivityThread.main(Activi tythread.java:4627) 12 - 17日09:19:46.674:錯誤/ AndroidRuntime(4940):在java.lang.reflect.Method.invokeNative(本機方法) 12 - 17 09:19:46.674:ERROR/AndroidRuntime (4940):at java.lang.reflect.Method.invoke(Method.java:521) 12-17 09:19:46.674:ERROR/AndroidRuntime(4940):at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller .run(ZygoteInit.java:868) 12-17 09:19:46.674:ERROR/AndroidRuntime(4940):at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 12-17 09 :19:46.674:ERROR/AndroidRuntime(4940):at dalvik.system.NativeStart.main(Native Method) 12-17 09:19:46.674:ERROR/AndroidRuntime(4940):引起:android.view.WindowManager $ BadTokenException:無法添加窗口 - 標記null無效;你的活動正在運行? 12 - 17 09:19:46.674:ERROR/AndroidRuntime(4940):at android.view.ViewRoot.setView(ViewRoot.java:505) 12-17 09:19:46.674:ERROR/AndroidRuntime(4940):at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:177) 12-17 09:19:46.674:ERROR/AndroidRuntime(4940):at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91) 12-17 09:19:46.674:ERROR/AndroidRuntime(4940):at android.view.Window $ LocalWindowManager.addView(Window.java:424) 12-17 09:19:46.674:ERROR/AndroidRuntime(4940):at com。 android.internal.policy.impl.PhoneWindow.openPanel(PhoneWindow.java:463) 12-17 09:19:46.674:ERROR/AndroidRuntime(4940):at com.android.internal.policy.impl.PhoneWindow.openPanel( PhoneWindow.java:378) 12-17 09:19:46.674:ERROR/AndroidRuntime(4940):at android.app。 Activity.openOptionsMenu(Activity.java:2330) 12-17 09:19:46.674:ERROR/AndroidRuntime(4940):at com.cmu.community.HomeActivity.onCreate(HomeActivity.java:105) 12-17 09: 19:46.674:錯誤/ AndroidRuntime(4940):在android.app.Instrumentation。callActivityOnCreate(Instrumentation.java:1047) 12-17 09:19:46.674:ERROR/AndroidRuntime(4940):at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 12-17 09:19:46.674: ERROR/AndroidRuntime(4940):... 11更多
有沒有人有解決方案?
請不要這樣做。 – CommonsWare 2011-12-17 15:52:25
好的。我採取它與Juozas在下面提到的相同的原因... – user836200 2011-12-17 17:34:28
不僅如此,但Android 3.0以上的選項菜單是不同的,當你應該使用操作欄。如果你不喜歡按鈕的方式,可以考慮添加一個動作欄,使用ActionBarSherlock之類的東西來實現向後兼容性。 – CommonsWare 2011-12-17 17:53:26