回调onContextItemSelected()中ContextMenuInfo.id和item.getItemId之间有什么区别?

时间:2011-11-17 12:14:17

标签: android menu contextmenu

回调 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);
  }
}

1 个答案:

答案 0 :(得分:0)

在将菜单传递到super.onCreateContextMenu之前对菜单进行充气。

ContextMenuInfo是启动上下文菜单的视图可以设置的额外数据 - 因此存在具有不同item.getItemId()的编辑和删除按钮,但info.id给出了用于创建菜单的视图(要编辑的项目。)