Android 3.0 Honeycomb: как включить / отключить пункты меню на панели действий? - PullRequest
9 голосов
/ 21 июня 2011

довольно просто отключить пункт меню в XML:

<item android:id="@+id/men_1" 
    android:title="@string/men_1" 
    android:showAsAction="ifRoom|withText"
    android:icon="@drawable/ic_menu_1"
    android:enabled="false"/>

Также довольно легко изменить его с помощью кода в приложении <3.0: </p>

@Override
public boolean onPrepareOptionsMenu(Menu menu)
{
  super.onPrepareOptionsMenu(menu);

  MenuItem item = menu.findItem(R.id.men_1);
  item.setEnabled(false);

  return true;
}

Но как быЯ делаю это на Android 3.x?Я хочу отключить пункты меню в зависимости от показанного фрагмента.

С уважением, медуза

1 Ответ

24 голосов
/ 21 июня 2011

Примерно то же самое, но вместо этого поместите код во фрагмент, обратите внимание на сигнатуру другого метода.

@Override
public void onPrepareOptionsMenu(Menu menu) {
    MenuItem item= menu.findItem(R.id.men_1);
    item.setEnabled(false);
    super.onPrepareOptionsMenu(menu);
}

Таким образом, фрагмент берет на себя ответственность за раздувание меню и т. Д.

Редактировать Обратите внимание на необходимость звонить setHasOptionsMenu(true)

...