Предположим, что у меня есть два вида деятельности. Один называется MainActivity, а другой называется PopupActivity. Я хочу иметь контекстное меню в MainActivity после посещения пользователем PopupActivity.Невозможно нажать «Параметры», если размер исходного меню равен нулю
Main [no menu] --> startActivity()/startActivityForResult()
==> Popup --> back/finish()
==> Main [now has menu].
детали окружающей среды:
- minSDK: 10 (нужен для обратной совместимости)
- targetSDK: 17
- targetDevice: GalaxyTab 2,0
Если MainActivity имеет хотя бы один элемент в начальном состоянии, я могу добавить/remo v желаемые пункты меню через onPrepareOptionsMenu. Но если MainActiviy имеет 0 элементов меню внутри, андроид даже не отображает кнопку меню в верхнем правом углу.
Мой вопрос:
- Что я пропустил?
- Как сказать андроиду, чтобы отобразить кнопку меню, потому что я хочу добавить к нему пункты меню.
Обходные души не могут работать (например, разделение Деятельности на два и т. Д.), Потому что вся проблема немного сложнее, но суть этого в этом. Мне не нужны пункты меню в начальном состоянии, и я нуждаюсь в них во втором.
main_menu.xml:
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/menu_add" android:title="@string/add"></item>
<item android:id="@+id/menu_remove" android:title="@string/remove" ></item>
</menu>
MainActivity.java
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main_menu, menu);
return true;
}
@Override
public boolean onPrepareOptionsMenu(Menu menu)
{
if (initState)
{
menu.findItem(R.id.menu_add).setVisible(false);
menu.findItem(R.id.menu_remove).setVisible(false);
} else
{
menu.findItem(R.id.menu_add).setVisible(true);
menu.findItem(R.id.menu_remove).setVisible(true);
}
return super.onPrepareOptionsMenu(menu);
}