Поскольку я не могу предотвратить закрытие меню панели действий по умолчанию после выбора элемента, я подумал об использовании всплывающего меню.Я хочу использовать мое всплывающее меню с таким же расположением меню панели действий Android, поэтому вот мое меню:
<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"
tools:context=".MainActivity" xmlns:app="http://schemas.android.com/apk/res-auto">
<group android:id="@+id/grp_filtro_selezione" android:checkableBehavior="all">
<item android:id="@+id/menu_all"
android:src="@drawable/ic_settings"
android:title="@string/all_menu"
android:checked="true"/>
<item android:id="@+id/menu_aule"
android:src="@drawable/ic_settings"
android:title="@string/aule_menu"
android:checked="false"/>
<item android:id="@+id/menu_aule_studio"
android:src="@drawable/ic_settings"
android:title="@string/aule_studio_menu"
android:checked="false"/>
</group>
</menu>
Я не могу понять, как я могу использовать свое всплывающее меню с чем-то вроде этого:
PopupMenu popup = new PopupMenu(MainActivity.this, v);
popup.getMenuInflater().inflate(R.menu.pop_up, popup.getMenu());
и отключение стандартного меню панели действий.
Я думаю, что мне следует использовать onCreateOptionsMenu ()
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
inflater.inflate(R.menu.mymenu, menu);
}
, но как я могу надуть мое всплывающее меню?
РЕДАКТИРОВАТЬ:
Я почти нашел решение, но у меня есть одна проблема.Итак, что я сделал, в onCreateOptionsMenu, я надувал меню, которое включает в себя только значки панели действий:
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
inflater.inflate(R.menu.prova_menu, menu);
}
И в onOptionsItemSelected я пробовал это:
switch (item.getItemId()) {
case R.id.settings:
View menuItemView = getActivity().findViewById(R.id.settings);
popupMenu = new PopupMenu(getActivity(), menuItemView);
popupMenu.inflate(R.menu.prova2);
popupMenu.show();
}
Работает нормально, но есть проблема.Во всплывающем меню, которое я показываю, есть выбираемые пункты.Когда я нажимаю значок, чтобы открыть меню снова, все элементы сбрасываются, вероятно, потому что я раздуваю расположение меню каждый раз, когда я показываю всплывающее меню.Я пытался раздувать всплывающее меню только один раз в onCreateOptionsMenu, но я получаю эту ошибку при вызове popupMenu.show ().
MenuPopupHelper cannot be used without an anchor