Я использую xml для своего ContextMenu, например:
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/Ordermenu" android:title="Order">
<menu android:id="@+id/OrderBySubMenu">
<item android:id="@+id/OrderByASC" android:title="Order ASC" />
<item android:id="@+id/OrderByDESC" android:title="Order DESC" />
<item android:id="@+id/Cancel" android:title="Cancel" />
</menu>
</item>
<item android:id="@+id/ActionAmenu" android:title="Action A"/>
</menu>
Я использую следующий код для отображения меню в моем onCreateContextMenu
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.layout.my menu, menu);
Я управляю опцией click со следующим кодом:
public boolean onContextItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.Displaymenu:
//do stuff
return true;
case R.id.OrderByASC:
//do stuff
return true;
case R.id.OrderByDESC:
//do stuff
return true;
default :
return(super.onOptionsItemSelected(item));
}
При запуске контекстного меню отображаются две опции:
- порядок
- Действие А
Нажав на «Заказать», вы увидите подменю:
- Заказать АСЦ
- Заказать DESC
- Отмена
Теперь, если пользователь нажимает кнопку «Отмена» (или нажимает кнопку «Назад»), действие не указывается, поэтому он вызывает super.onOptionsItemSelected(item), который возвращается к моей основной деятельности.
Как в таком случае вернуться в главное меню? то есть отображать начальный :
- порядок
- Действие А