Androidアプリのコンテキストメニューを作成しようとしていますDialogPreference
(関連する場合は、APIレベル8をターゲットにしています)。ListView
ちょっとしたハックでメニューを表示することができましたが(aの項目がクリックされたとき)、結果のコマンドを処理する方法がわかりません。私がこれまでに持っているのは:
私の
onItemClick
ハンドラーでは、次のことを行います。list.setOnCreateContextMenuListener (new ContextMenuGenerator(control, position)); list.showContextMenuForChild (control); list.setOnCreateContextMenuListener (null);
ContextMenuGenerator
次のことを行います。public class ContextMenuGenerator implements OnCreateContextMenuListener { // additional code redacted - not necessary for this question @Override public void onCreateContextMenu (ContextMenu menu, View v, ContextMenuInfo menuInfo) { new MenuInflater(context).inflate (R.menu.address_set_preference_popup, menu); } }
これにより、適切なタイミングで正しいメニューが表示されますが、アイテムを選択した後に何が起こるかわかりません。私はそれが作成することonContextItemSelected(MenuItem)
で呼び出されると思いますが、そこからそのイベントを処理できるコードに到達する方法がわかりません-それをサブクラス化する方法が見当たらず、方法がないようです外部リスナーをそれまたはのいずれかに接続します。私が考えていなかった他の方法はありますか?Dialog
DialogPreference
Dialog
ContextMenu