ユーザ用ツール

サイト用ツール


ダイアログの中で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 17:27 by 127.0.0.1