2011-11-17 75 views
0

ContextMenuInfo.id和item.getItemId在回调中的区别onContextItemSelected()?回调函数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

在将菜单传递到super.onCreateContextMenu之前将菜单充满。

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

+0

谢谢!那么如何更改** menuInfo **中的info.id? – Sam

相关问题