Activityクラスには、registerForContextMenu(View view)
というメソッドがあります。
Androidドキュメントでは、このメソッドを使用して、特定のビューに表示されるコンテキストメニューを登録することが説明されています(複数のビューでコンテキストメニューを表示できます)。
registerForContextMenu(View view)
についても説明が必要ですが、ドキュメントをオンラインで読むだけではわかりません。これは基本的に、特定のUI要素(通常はListViewの項目)をロングクリックしたときに表示されるポップアップメニューです。
開発者ガイドの Menus セクションをご覧ください。
これはAndroid開発者: メニュー-Android開発者
コンテキストメニューは、ユーザーが要素をロングクリックしたときに表示されるフローティングメニューです。選択したコンテンツまたはコンテキストフレームに影響を与えるアクションを提供します。
リストビューにconextメニューが必要だと想像してみてください
//Constants for context menu options
public static final int MENU_MARK = 1;
public static final int MENU_REMOVE = 2;
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
...
...
// Specify that your listview has a context menu attached
registerForContextMenu(getListView());
}
// here you create the context menu
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
menu.add(Menu.NONE, MENU_MARK, Menu.NONE, "MARK");
menu.add(Menu.NONE, MENU_REMOVE, Menu.NONE, "Remove");
}
// This is executed when the user selects an option
@Override
public boolean onContextItemSelected(MenuItem item) {
AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
switch (item.getItemId()) {
case MENU_MARK:
mark_item(info.id);
return true;
case MENU_REMOVE:
delete_item(info.id);
return true;
default:
return super.onContextItemSelected(item);
}
}