2016-10-13 6 views
1

私の活動からのメニューアイテムの1つを、クラスフィールドとしてonCreateOptionsMenu()に保存しています。Androidでのタイミング問題を回避する方法

_myMenuItem = (MenuItem) findViewById(R.id.menu_item); 

しかしonCreate()に、私は非同期メソッドを呼び出し、その結果、私はメニュー項目が言ったの視界がtrueまたはfalseにする必要があるかどうかを指示します。例えば:メニューがNULLポインタ例外を引き起こし、膨張する前

if (someCondition) { 
    _myMenuItem.setVisible(true); 
} 

問題は、時には非同期メソッドの完了(および上記のコードが呼び出されている)です。

このタイミングの問題を解決するにはどうすればよいですか?誰かが良い方法を知っているならば、非同期呼び出しをonCreateOptionsMenu()の中に入れないのが理想です。ありがとう

+0

「非同期メソッド」を呼び出した後に 'まずはバインドする '.... – sushildlh

+0

もっと説明できますか? – b85411

+0

あなたの完全な活動コードを投稿してください。 – sushildlh

答えて

0

アクティビティでブール値のプロパティを宣言します。背景を完成させた後、メニュー項目を表示する場合はそのプロパティをtrueに設定し、それ以外の場合はfalseにして、メニューを再表示させます(invalidateOptionsMenu)。メニューを更新すると、onPrepareOptionsMenuが呼び出されます。 onPrepareOptionsMenuでは、プロパティの値をチェックし、メニュー項目の表示を設定します。

関連する問題