Я бы хотел, чтобы кнопка моего меню в моей основной деятельности была всегда открыта. Я использовал:
@Override
public void onAttachedToWindow() {
super.onAttachedToWindow();
openOptionsMenu();
}
, которое открывает меню, когда я иду в активность. Однако, когда я нажимаю кнопку меню, чтобы перейти к другому занятию и нажимаю кнопку «Назад», меню исчезает и требует, чтобы я нажал клавишу «Меню», чтобы вернуть его. Я бы хотел, чтобы меню всегда было открыто для этого конкретного мероприятия.
Я пытался переопределить операцию на onBackPressed:
@Override
public void onBackPressed(){
super.onBackPressed();
this.openOptionsMenu();
}
И я попытался добавить this.openOptionsMenu в onCreate. Когда я это делаю, мое приложение вылетает с ошибкой:
12-17 09: 19: 46.674: ОШИБКА / AndroidRuntime (4940): ИСКЛЮЧИТЕЛЬНОЕ ИСКЛЮЧЕНИЕ: основное
12-17 09: 19: 46.674: ОШИБКА / AndroidRuntime (4940): java.lang.RuntimeException: невозможно запустить действие ComponentInfo {com.cmu.community/com.cmu.community.HomeActivity}: android.view.WindowManager $ BadTokenException : Невозможно добавить окно - токен null недействителен; ваша деятельность работает?
12-17 09: 19: 46.674: ОШИБКА / AndroidRuntime (4940): на android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2663)
12-17 09: 19: 46.674: ОШИБКА / AndroidRuntime (4940): на android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2679)
12-17 09: 19: 46.674: ОШИБКА / AndroidRuntime (4940): на android.app.ActivityThread.access $ 2300 (ActivityThread.java:125)
12-17 09: 19: 46.674: ОШИБКА / AndroidRuntime (4940): на android.app.ActivityThread $ H.handleMessage (ActivityThread.java:2033)
12-17 09: 19: 46.674: ОШИБКА / AndroidRuntime (4940): на android.os.Handler.dispatchMessage (Handler.java:99)
12-17 09: 19: 46.674: ОШИБКА / AndroidRuntime (4940): на android.os.Looper.loop (Looper.java:123)
12-17 09: 19: 46.674: ОШИБКА / AndroidRuntime (4940): на android.app.ActivityThread.main (ActivityThread.java:4627)
12-17 09: 19: 46.674: ОШИБКА / AndroidRuntime (4940): в java.lang.reflect.Method.invokeNative (собственный метод)
12-17 09: 19: 46.674: ОШИБКА / AndroidRuntime (4940): на java.lang.reflect.Method.invoke (Method.java:521)
12-17 09: 19: 46.674: ОШИБКА / AndroidRuntime (4940): на com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:868)
12-17 09: 19: 46.674: ОШИБКА / AndroidRuntime (4940): на com.android.internal.os.ZygoteInit.main (ZygoteInit.java:626)
12-17 09: 19: 46.674: ОШИБКА / AndroidRuntime (4940): в dalvik.system.NativeStart.main (собственный метод)
12-17 09: 19: 46.674: ОШИБКА / AndroidRuntime (4940): вызвано: android.view.WindowManager $ BadTokenException: невозможно добавить окно - нулевой токен недействителен; ваша деятельность работает?
12-17 09: 19: 46.674: ОШИБКА / AndroidRuntime (4940): на android.view.ViewRoot.setView (ViewRoot.java:505)
12-17 09: 19: 46.674: ОШИБКА / AndroidRuntime (4940): на android.view.WindowManagerImpl.addView (WindowManagerImpl.java:177)
12-17 09: 19: 46.674: ОШИБКА / AndroidRuntime (4940): на android.view.WindowManagerImpl.addView (WindowManagerImpl.java:91)
12-17 09: 19: 46.674: ОШИБКА / AndroidRuntime (4940): в android.view.Window $ LocalWindowManager.addView (Window.java:424)
12-17 09: 19: 46.674: ОШИБКА / AndroidRuntime (4940): на com.android.internal.policy.impl.PhoneWindow.openPanel (PhoneWindow.java:463)
12-17 09: 19: 46.674: ОШИБКА / AndroidRuntime (4940): на com.android.internal.policy.impl.PhoneWindow.openPanel (PhoneWindow.java:378)
12-17 09: 19: 46.674: ОШИБКА / AndroidRuntime (4940): в android.app.Activity.openOptionsMenu (Activity.java:2330)
12-17 09: 19: 46.674: ОШИБКА / AndroidRuntime (4940): на 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: ОШИБКА / AndroidRuntime (4940): на android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2627)
12-17 09: 19: 46.674: ОШИБКА / AndroidRuntime (4940): ... еще 11
У кого-нибудь есть решение для этого?