android - 上下文菜单在回收站视图中不起作用
问题描述
我正在尝试在回收站视图中添加上下文菜单,但它不起作用。在我的适配器中,我添加了以下内容
public class ViewHolder extends RecyclerView.ViewHolder implements
View.OnCreateContextMenuListener {
TextView mTitle, mDescription;
public ViewHolder(View itemView) {
super(itemView);
mTitle = itemView.findViewById(R.id.textViewTitle);
mDescription = itemView.findViewById(R.id.textViewDescription);
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int position = getAdapterPosition();
String title = mTitle.getText().toString();
String descrpition = mDescription.getText().toString();
if (mClickListener!=null)
mClickListener.onItemClick(v, position, title, descrpition);
}
});
itemView.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
int position = getAdapterPosition();
if (onRecyclerViewLongClickListner!=null)
onRecyclerViewLongClickListner.onItemLongClick(position);
return true;
}
});
itemView.setOnCreateContextMenuListener(this);
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
menu.setHeaderTitle("Select options");
menu.add(0,v.getId(),0,"Option1");
}
}
在 mainActivity 我添加了registerForContextMenu(recyclerView);
解决方案
问题出在您的OnLongClickListener上。当您返回 true 时,它会消耗长点击事件。
从onLongClick
方法文档:
如果回调消耗了长按,则为 true,否则为 false。
由于您需要在 onLongClick 中创建,因此您必须从您的系统ContextMenu
返回,以便系统可以创建。false
OnLongClickListener
ContextMenu
更新您的OnLongClickListener
itemView.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
int position = getAdapterPosition();
if (onRecyclerViewLongClickListner!=null)
onRecyclerViewLongClickListner.onItemLongClick(position);
return false;
}
});
推荐阅读
- c - 查找未定义的 gpio 编号的问题是树莓派 3
- proxy - 创建 React App v2 高级代理功能不起作用
- android - 根据特定用户偏好删除回收站项目
- python - 请求:来自 scipy.spatial 的 cKDTree
- javascript - Node.js:我正在努力将回调函数的结果存储到字典变量中
- ios - 在按钮目标 Swift 的选择器方法中更改两个对象
- sql - 如何在 C# 中完全外连接或连接最多 6(六)个 SQL Server 数据库表?
- swift - GIDSignInDelegate 的问题,尽管添加了符号功能,但仍无法符合它
- ios - ActionSheet 以不正确的颜色呈现
- python - 尝试使用 python 将输入与权重相乘时,张量流 lite 的输出不匹配