Android的context menu当前被选中的item,背景色变成红色
时间: 2024-05-12 13:20:13 浏览: 9
要实现这个效果,可以使用以下代码:
```java
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.context_menu, menu);
// 获取被选中的item
AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) menuInfo;
View selectedView = info.targetView;
// 将背景色设置为红色
selectedView.setBackgroundColor(Color.RED);
}
@Override
public boolean onContextItemSelected(MenuItem item) {
// 处理菜单项的点击事件
// 将背景色恢复为默认值
AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
View selectedView = info.targetView;
selectedView.setBackgroundColor(Color.TRANSPARENT);
return true;
}
```
在`onCreateContextMenu()`方法中,首先获取被选中的item所对应的View,然后将背景色设置为红色。
在`onContextItemSelected()`方法中,处理菜单项的点击事件后,将背景色恢复为默认值。注意要使用`item.getMenuInfo()`方法获取被选中的item所对应的`ContextMenu.ContextMenuInfo`对象,从而获取选中的View。