点击onClick
时如何停用LongClick
?
这是来自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;
}
});
答案 0 :(得分:1)
@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
。
请不要对此投反对票,我只是想帮助正在寻找这个特定答案的人。
答案 1 :(得分:0)
添加此行
holder.title.setOnClickListener(null);