0

メイン アクティビティのメニュー ボタンを常に開いておきたいと思います。私が使用した:

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

アクティビティに移動するとメニューが開きます。ただし、メニューボタンオプションを押して別のアクティビティに移動し、戻るボタンを押すと、メニューが消えてしまい、元に戻すには「メニュー」キーを押す必要があります。この特定の活動のために、メニューを常に開いたままにしておいてください。

アクティビティの onBackPressed をオーバーライドしようとしました:

@Override

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

そして、onCreate に this.openOptionsMenu を追加してみました。これを行うと、アプリケーションが次のエラーでクラッシュします。

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: NativeStart.main(Native Method) 12-17 09:19:46.674: エラー/AndroidRuntime(4940): 原因: android.view.WindowManager$BadTokenException: ウィンドウを追加できません -- トークン null は無効です。あなたの活動は進んでいますか?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):

誰かがこれに対する解決策を持っていますか?

4

1 に答える 1

1

オプション メニューは、非表示にするアクション用です。常にアクセスできるようにしたいアクションのボタンをレイアウトに追加します。

オプション メニューは、本当にやりたいことのために設計されていません。したがって、現在の問題を何らかの方法で解決すると、QA (またはユーザー) はすぐに解決すべき他の問題を見つけるでしょう。

于 2011-12-17T14:46:51.153 に答える