ダイアログの中でcontextmenuを使う
ダイアログの中でContextMenuを使う
概要
ダイアログの中に、ListViewなどの要素を置いて、コンテキストメニューを使って制御をしたい。 そういう場合、通常のActivityで行っているように、OnCreateContextMenu()とOnContextItemSelected()を実装しても、メニュー選択の処理がされない。
ここでは、メニューを作成し、適切にコールバックを受け取る方法について説明する。
ダイアログクラスの作成
class MyDialog extends Dialog implements OnClickLisener
のように、Dialogを継承し、OnClickListenerを実装したクラスを宣言する。
コンテキストメニューの登録
Listview listView; registerForContextMenu(listView); listView.setOnCreateContextMenuListener(this);
registerForContextMenuの後に、setOnCreateContextMenuListener()をする。ここが、Activityの場合との違いのまず第一点目である。
コンテキストメニューの作成
これは、通常通り OnCreateContextMenu()で行う。
コンテキストメニュー選択後の処理
Activityでやるように、OnContextItemSelected()を実装しても、ここに処理が渡されることはない。 代わりに、
boolean onMenuItemSelected(int featureId, MenuItem item)
を実装してやる。ここが、もう一点の相違である。 あとは、通常 OnContextItemSelected()で行っているように処理を行えば良い。
Androidに関してへ戻る。
ダイアログの中でcontextmenuを使う.txt · 最終更新: 2015/04/10 08:27 by 127.0.0.1