У меня есть RecyclerView, в котором можно долго нажимать каждый элемент для отображения контекстного меню. Я хотел бы выделить элемент, который был нажат при длительном нажатии, чтобы пользователь мог увидеть и визуально подтвердить, какой элемент был, прежде чем выбрать что-либо в меню (например, чтобы он не удалил неправильный элемент по ошибке) .
Я могу заставить элемент выделяться нормально, добавляя цвет фона, но не могу отключить его, если пользователь затем закрывает контекстное меню (или если выбранный пункт меню не перевести пользователя на новое действие)
У меня есть следующее для создания меню:
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
if (v.getId()==R.id.list_item) {
// Highlight selected item
v.setBackgroundColor(getResources().getColor(R.color.browser_actions_bg_grey));
// Inflate menu
MenuInflater inflater = this.getMenuInflater();
inflater.inflate(R.menu.menu_long_press_chart_name, menu);
}
}
Я предполагаю, что мне нужно что-то сделать в onContextMenuClosed
, но я не вижу, что мне нужно сделать:
public void onContextMenuClosed(Menu menu) {
super.onContextMenuClosed(menu);
}
Я не вижу ничего в переменной menu
, которая показывает, какой элемент открыл ее.