回调 onContextItemSelected ()中的 ContextMenuInfo.id 和item.getItemId有什么区别?
如何在 AVD 中显示 ContextMenu ?谢谢!!
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.context_menu, menu);
}
@Override
public boolean onContextItemSelected(MenuItem item) {
AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
switch (item.getItemId()) {
case R.id.edit:
editNote(info.id);
return true;
case R.id.delete:
deleteNote(info.id);
return true;
default:
return super.onContextItemSelected(item);
}
}
答案 0 :(得分:0)
在将菜单传递到super.onCreateContextMenu之前对菜单进行充气。
ContextMenuInfo是启动上下文菜单的视图可以设置的额外数据 - 因此存在具有不同item.getItemId()的编辑和删除按钮,但info.id给出了用于创建菜单的视图(要编辑的项目。)