次のような ContextMenu に xml を使用します。
<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);
次のコードでオプションのクリックを管理します:
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));
}
コンテキスト メニューを開始すると、次の 2 つのオプションが表示されます。
- 注文
- アクションA
[注文] をクリックすると、サブメニューが表示されます。
- オーダーASC
- 注文内容説明
- キャンセル
ここで、ユーザーがキャンセルをクリックした場合 (またはハードウェアの [戻る] ボタンをクリックした場合)、アクションが指定されていないため、メイン アクティビティに戻る super.onOptionsItemSelected(item) が呼び出されます。
このような場合、どうすればメインメニューに戻ることができますか? つまり、イニシャルを表示します。
- 注文
- アクションA