为什么 item.getMenuInfo() 返回了 null
时间: 2024-03-06 15:48:34 浏览: 165
net.sf.json.JSONObject 为null 的判断方法
`item.getMenuInfo()` 返回 `null` 的原因可能是因为在创建 `ContextMenu` 时没有正确设置 `setMenuInfo()` 方法。在创建 `ContextMenu` 时,可以使用 `setMenuInfo()` 方法将一个 `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);
}
}
```
如果在创建 `ContextMenu` 时没有设置 `setMenuInfo()` 方法,那么在使用 `item.getMenuInfo()` 时就会返回 `null`。
阅读全文