0

Android メニュー アイコンに関する奇妙な動作を見つけました。onCreateOptionsMenu でアイコンを追加すると

setVisible(false)

アイコンは表示されず、電話しても表示されません

setVisible(true)

後の電話で。私の例を見てください:

public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
  ...
  entryOne = menu.add("menuOne");
  entryOne.setIcon(...);
  entryOne.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
  entryOne.setVisible(false); 

  entryTwo = menu.add("menuTwo");
  entryTwo.setIcon(...);
  entryTwo.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
  entryTwo.setVisible(false); 

  // entryThree = menu.add("menuThree");
  // entryThree.setIcon(...);
  // entryThree.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
  // entryThree.setVisible(true); 

  super.onCreateOptionsMenu(menu, inflater);
}

...

public void onItemClick(...) {
...
  entryOne.setVisible(true);
  entryTwo.setVisible(true);
...
}

もちろん設定しました

setHasOptionsMenu(true);

奇妙なことに、 onCreateOptionsMenuの最後の行のコメントを外すと、すべて問題ありません。

<uses-sdk android:minSdkVersion="11"
          android:targetSdkVersion="14" />

これはバグですか、それとも何か間違っていますか?

4

1 に答える 1

0

ハンドラーを使用するとうまくいきました...

public void onItemClick(...) {
...
handler.postDelayed(new Runnable() {
                        public void run() {
                            entryOne.setVisible(true);
                                     entryTwo.setVisible(true);
                        }
                    }, 100);  
...
}
于 2012-09-27T13:28:49.433 に答える