如何突出显示长按以创建上下文菜单的项目?
How can I highlight an item which was long-pressed to create a ContextMenu?
我有一个 RecyclerView,其中的每个项目都可以长按以显示上下文菜单。我想突出显示长按的项目,以便用户可以在 select 菜单中的任何内容之前看到并直观地确认它是哪个项目(这样他们就不会错误地删除错误的项目, 例如).
我可以通过添加背景颜色使项目高亮显示,但如果用户随后关闭上下文菜单(或者如果 selected 菜单item 是一个不会将用户带到新的 activity).
我有以下内容来创建菜单:
@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
变量中看不到任何显示哪个项目打开它的内容。
选中 this answer,它提供了一种在上下文菜单关闭时收到通知的方法。
通过在 onContextMenuClosed 中执行以下操作解决了这个问题(mRecyclerView 是包含所有项目的 RecyclerView):
public void onContextMenuClosed(Menu menu) {
super.onContextMenuClosed(menu);
View thisItem;
for(int ii=0; ii< mRecyclerView.count(); ii++) {
thisItem = mRecyclerView.getChildAt(ii);
if(thisItem.getId() == R.id.list_item) {
thisItem.setBackgroundColor(getResources().getColor(R.color.fui_transparent));
}
}
}
我有一个 RecyclerView,其中的每个项目都可以长按以显示上下文菜单。我想突出显示长按的项目,以便用户可以在 select 菜单中的任何内容之前看到并直观地确认它是哪个项目(这样他们就不会错误地删除错误的项目, 例如).
我可以通过添加背景颜色使项目高亮显示,但如果用户随后关闭上下文菜单(或者如果 selected 菜单item 是一个不会将用户带到新的 activity).
我有以下内容来创建菜单:
@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
变量中看不到任何显示哪个项目打开它的内容。
选中 this answer,它提供了一种在上下文菜单关闭时收到通知的方法。
通过在 onContextMenuClosed 中执行以下操作解决了这个问题(mRecyclerView 是包含所有项目的 RecyclerView):
public void onContextMenuClosed(Menu menu) {
super.onContextMenuClosed(menu);
View thisItem;
for(int ii=0; ii< mRecyclerView.count(); ii++) {
thisItem = mRecyclerView.getChildAt(ii);
if(thisItem.getId() == R.id.list_item) {
thisItem.setBackgroundColor(getResources().getColor(R.color.fui_transparent));
}
}
}