public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) { //创建上下文菜单 menu.add(Menu.NONE,0,0,"修改"); menu.add(Menu.NONE,1,1,"删除"); }这样不行吗
时间: 2024-03-06 22:48:36 浏览: 19
根据您提供的代码,您的 `ContextMenu` 创建方法似乎没有正确地设置菜单信息。为了在 `ContextMenu` 中使用 `item.getMenuInfo()` 方法,您需要将一个 `AdapterView.AdapterContextMenuInfo` 对象与菜单项关联起来。
您可以在 `onCreateContextMenu()` 方法中使用以下代码设置 `ContextMenu` 的菜单信息:
```
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
if (v.getId() == R.id.listView) {
AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) menuInfo;
menu.setHeaderTitle("Menu");
menu.add(0, 1, 0, "Edit");
menu.add(0, 2, 0, "Delete");
menu.setHeaderTitle("Menu");
menu.setHeaderIcon(R.mipmap.ic_launcher);
menu.setHeaderTitle("Menu");
info.targetView.setBackgroundColor(Color.YELLOW);
v.setTag(info);
menuInfo = info; // 将创建的 info 赋值给 menuInfo
}
}
```
在上面的代码中,我们首先将 `menuInfo` 强制转换为 `AdapterView.AdapterContextMenuInfo` 对象,并将其赋值给 `info`。然后,我们使用 `info` 设置菜单项的背景颜色,并将其通过 `setTag()` 方法关联到 `View` 上。最后,我们将 `info` 赋值给 `menuInfo`,以便在使用 `item.getMenuInfo()` 方法时可以正确地获取菜单信息。
希望这可以帮助您解决问题。