5

私のプロジェクトでは、ユーザーがメニューキーをクリックすることなく、プログラムでoptionsMenuを開こうとしています。openOptionsMenu()を試してみ ましたが、次のようなエラーが表示されますandroid.view.WindowManager$BadTokenException: Unable to add window -- .. why is... これの解決策は何ですか...

08-13 14:53:02.687: E/AndroidRuntime(1213): 致命的な例外: メイン 08-13 14:53:02.687: E/AndroidRuntime(1213): java.lang.RuntimeException: アクティビティ ComponentInfo{com を開始できません。 veytila.candideye/com.veytila.candideye.MainActivity}: android.view.WindowManager$BadTokenException: ウィンドウを追加できません -- トークン null は無効です。あなたの活動は進んでいますか?

4

2 に答える 2

2

返信ありがとうございます..... mr.Nandeeshの投稿から解決策を見つけました。次のコードとその動作を追加しました...

 public void onResume()
{
    new Handler().postDelayed(new Runnable() { 
       public void run() { 
           openOptionsMenu(); 
       } 
    }, 500); 

    super.onResume();
}
于 2012-08-13T10:34:37.333 に答える
1

Oncreate または onResume でこれを行っていると思います。アクティビティのウィンドウが初期化された後にのみ、この API を呼び出す必要があります。1 つの方法は、onresume で遅延したランナブルを ui スレッドに投稿することです。

于 2012-08-13T10:12:00.083 に答える