1

私は次のようにonCreateOptionsMenuメソッドをオーバーライドするAndroidでメニューを作成しています:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    menu.add(0, 0, 0, "Blit").setCheckable(true);
    return true;

}

public boolean onOptionsItemSelected(MenuItem item) {
    if (item.getItemId() == 0)
    {
              somevar = !somevar;
              item.setchecked(somevar);

            }
    }

問題は、メニューがチェックされないことです...どうすればメニューをチェックできますか?

4

2 に答える 2

1

が呼び出されたら、すべてのメニュー項目を更新する必要がありますonPrepareOptionsMenu

@Override
public boolean onPrepareOptionsMenu(Menu menu) {
    for (int i = 0; i < menu.size(); i++) {
        MenuItem item = menu.getItem(i);
        if (item.getItemId() == 0)
            item.setChecked(somevar);
    }
    return super.onPrepareOptionsMenu(menu);
}
于 2012-05-07T07:18:59.010 に答える
0

チェックメニューの場合、このタイプのメニューを作成する必要があります。次に、uはチェック可能なアイテム(なし、すべて、単一)を持つことができます。

于 2012-05-07T09:28:35.533 に答える