当 OnlongClick 选项时禁用 onClick on recyclerView
disable onClick on recyclerView when is OnlongClick option
当我点击 LongClick
时如何禁用 onClick
?
这是来自 recyclerView
的代码,当我尝试长按时,我只看到正常的点击就像垃圾邮件一样乱七八糟。
holder.title.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(context, "To clear your recomendations, press for few seconds. ", Toast.LENGTH_SHORT).show();
}
});
holder.title.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
clearPreferences(R.string.preferences_reminder);
Toast.makeText(context, "Recomendations cleared.", Toast.LENGTH_SHORT).show();
return true;
}
});
添加这一行
holder.title.setOnClickListener(null);
@Nikhil PV 的回答很完美
如果需要同时收听 onLongClick
和 onClick
,
这是另一种方法:
示例:
@Override
public boolean onLongClick(View view) {
//return value true to make sure only onLongClick is executed without triggering normal onClick
return true; // or false
}
return true
表示事件被消费。它被处理了。不会通知其他点击事件。
return false
表示事件没有被消费。任何其他点击事件将继续接收通知。
因此,为了确保 onClick
和 onLongClick
不会同时触发,return true
来自 onLongClick
事件。
请不要对此投反对票,我只是想帮助正在寻找这个特定答案的人。
当我点击 LongClick
时如何禁用 onClick
?
这是来自 recyclerView
的代码,当我尝试长按时,我只看到正常的点击就像垃圾邮件一样乱七八糟。
holder.title.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(context, "To clear your recomendations, press for few seconds. ", Toast.LENGTH_SHORT).show();
}
});
holder.title.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
clearPreferences(R.string.preferences_reminder);
Toast.makeText(context, "Recomendations cleared.", Toast.LENGTH_SHORT).show();
return true;
}
});
添加这一行
holder.title.setOnClickListener(null);
@Nikhil PV 的回答很完美
如果需要同时收听 onLongClick
和 onClick
,
这是另一种方法:
示例:
@Override
public boolean onLongClick(View view) {
//return value true to make sure only onLongClick is executed without triggering normal onClick
return true; // or false
}
return true
表示事件被消费。它被处理了。不会通知其他点击事件。
return false
表示事件没有被消费。任何其他点击事件将继续接收通知。
因此,为了确保 onClick
和 onLongClick
不会同时触发,return true
来自 onLongClick
事件。
请不要对此投反对票,我只是想帮助正在寻找这个特定答案的人。