我正在基于列表视图创建一个非常简单的活动。 我想添加一个上下文菜单到列表中的每个项目,所以我打电话给registerForContextMenu(mListView)
。然后我执行了onCreateContextMenu
和onContextItemSelected
的方法。onContextItemSelected似乎不被称为
的onCreateContextMenu
作品(上下文菜单中显示正确),但是当我点击该菜单没有任何反应的项目,在上下文菜单中刚好消失和方法onContextItemSelected
不叫(我只是把日志里面检查)。
如果可以帮助,请注意ListView
也附有一个onItemClickListener
。
我忘记了什么吗?
谢谢!
编辑:这里的代码(我藏了一些无关紧要的东西)
@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);
}
编辑2:我添加了onContextMenuClosed()
方法,当菜单关闭时被正确调用。
我添加了代码。事情是我的菜单显示并调用onCreateContextMenuListener。不过,我仍然想尝试手动(使用你的方法),它也没有工作。 –