ErG*_*404 3 android listview contextmenu
我正在基于列表视图创建一个非常简单的Activity.我想为列表中的每个项目添加一个上下文菜单,所以我打电话给registerForContextMenu(mListView).然后我实现了方法onCreateContextMenu和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);
}
Run Code Online (Sandbox Code Playgroud)
编辑2:我添加了onContextMenuClosed()方法,在菜单关闭时正确调用.
jen*_*nzz 15
我使用ActionBarSherlock库遇到了同样的问题.
如果您正在使用该库,确保导入正确的菜单项是android.view.MenuItem.
或者只是在方法头中指定完整包,如下所示:
public boolean onContextItemSelected(android.view.MenuItem item) {}
Run Code Online (Sandbox Code Playgroud)