私は非常に単純なアクティビティをリストビューに基づいて作成しています。 リスト内の各項目にコンテキストメニューを追加したいので、registerForContextMenu(mListView)
を呼び出しました。 その後、onCreateContextMenu
とonContextItemSelected
というメソッドを実装しました。 onContextItemSelectedが呼び出されていないようです
onCreateContextMenu
作品
onContextItemSelected
が呼び出されない方法は、(私はログを置きます)。
ListView
にもonItemClickListener
が添付されていることにご注意ください。
私は何かを忘れましたか?
ありがとうございます!
編集:私は、メニューを閉じたときに適切に呼び出されonContextMenuClosed()
方法を、追加しました:ここにコード(私はいくつかの無関係なものを隠した)
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mListView = new ListView(this);
mContacts = new Vector<Contact>();
mAdapter = new ContactAdapter(this, mContacts);
registerForContextMenu(mListView);
mListView.setAdapter(mAdapter);
mListView.setOnItemClickListener(new OnItemClickListener() {
... };
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
if (v == mListView) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.list_item_contextmenu, menu);
}
}
@Override
public boolean onContextItemSelected(MenuItem item) {
Log.v("Contacts", "onContextItemSelected called");
return super.onContextItemSelected(item);
}
EDIT 2です。
私はコードを追加しました。私のメニューは表示され、onCreateContextMenuListenerが呼び出されます。しかし、私はまだ手作業で(あなたの方法で)それをやろうとしたが、それもうまくいかなかった。 –