Androidのコンテキストメニューの仕組み
Androidにおけるコンテキストメニューとは、ListViewやGridViewなどのビューを長押ししたときに表示されるポップアップメニューのことです。ビューに対する特定のアクションを実行するためのオプションのセットが提供されます。
ContextMenuを使う手順は以下の通りです。
- ActivityやFragmentでコンテキストメニューを登録するには、registerForContextMenu()メソッドを呼び出して、コンテキストメニューを表示するビュー(ListViewなど)をコンテキストメニューと関連付けます。
registerForContextMenu(listView); // 在Activity或Fragment中注册ContextMenu
- アクティビティやフラグメントにonCreateContextMenu()メソッドを実装します。このメソッドはユーザーがビューを長押しした時に呼び出され、コンテキストメニューのアイテムを作成するために使われます。
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
// 添加上下文菜单项
menu.add(Menu.NONE, 1, Menu.NONE, "选项1");
menu.add(Menu.NONE, 2, Menu.NONE, "选项2");
menu.add(Menu.NONE, 3, Menu.NONE, "选项3");
}
- ユーザーがコンテキストメニュー項目を選択したら呼び出され、ユーザーの選択を処理するために Activity または Fragment の onContextItemSelected() メソッドを実装します。
@Override
public boolean onContextItemSelected(MenuItem item) {
// 处理选择的上下文菜单项
switch (item.getItemId()) {
case 1:
// 执行选项1的操作
return true;
case 2:
// 执行选项2的操作
return true;
case 3:
// 执行选项3的操作
return true;
default:
return super.onContextItemSelected(item);
}
}
上述の手順に従って、ユーザーがContextMenuの関連付けられたビューをロングタップすると、コンテキストメニューが表示され、関連する操作項目を選択して処理できます。