始终打开Android菜单:onOptionsMenu

时间:2011-12-17 14:33:33

标签: android options-menu

我希望我的主要活动中的菜单按钮始终处于打开状态。我用过:

@Override
public void onAttachedToWindow() {
   super.onAttachedToWindow();
   openOptionsMenu();
}

在我进入活动时打开菜单。但是,当我按下菜单按钮进入另一个活动并按下后退按钮时,菜单消失,并要求我按“菜单”键将其取回。我希望菜单在任何时候都能保持开放状态。

我试图覆盖Activity的onBackPressed:

@Override

public void onBackPressed(){
   super.onBackPressed();
   this.openOptionsMenu();
}

我尝试在onCreate中添加this.openOptionsMenu。当我这样做时,我的应用程序崩溃了错误:

12-17 09:19:46.674:ERROR / AndroidRuntime(4940):致命异常:主要 12-17 09: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):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663) 12-17 09:19:46.674:ERROR / AndroidRuntime(4940):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 12-17 09:19:46.674:ERROR / AndroidRuntime(4940):在android.app.ActivityThread.access $ 2300(ActivityThread.java:125) 12-17 09:19:46.674:ERROR / AndroidRuntime(4940):在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:2033) 12-17 09:19:46.674:ERROR / AndroidRuntime(4940):在android.os.Handler.dispatchMessage(Handler.java:99) 12-17 09:19:46.674:ERROR / AndroidRuntime(4940):在android.os.Looper.loop(Looper.java:123) 12-17 09:19:46.674:ERROR / AndroidRuntime(4940):在android.app.ActivityThread.main(ActivityThread.java:4627) 12-17 09:19:46.674:ERROR / AndroidRuntime(4940):at java.lang.reflect.Method.invokeNative(Native Method) 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):在android.view.ViewRoot.setView(ViewRoot.java:505) 12-17 09:19:46.674:ERROR / AndroidRuntime(4940):在android.view.WindowManagerImpl.addView(WindowManagerImpl.java:177) 12-17 09:19:46.674:ERROR / AndroidRuntime(4940):在android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91) 12-17 09:19:46.674:ERROR / AndroidRuntime(4940):在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):在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:ERROR / AndroidRuntime(4940):在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 12-17 09:19:46.674:ERROR / AndroidRuntime(4940):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 12-17 09:19:46.674:ERROR / AndroidRuntime(4940):... 11更多

有人有解决方案吗?

1 个答案:

答案 0 :(得分:1)

“选项”菜单适用于您要隐藏的操作。在布局中添加按钮,以便您始终可以访问这些操作。

选项菜单实际上并不是为您的目的而设计的。因此,如果您以某种方式解决当前问题,您的QA(或用户)很快就会发现其他问题需要您解决。