【发布时间】:2011-08-31 14:46:30
【问题描述】:
我有一个同时设置 onLongClickListener 和 onClickListener 的按钮:
onLongClickListener :
@Override
public boolean onLongClick(View v) {
do something ...
return true;
}
onClickListener :
@Override
public void onClick(View v) {
do something else ...
}
当我长按按钮时,onLongClick 会重复触发 (有时当我释放按钮时 onClick 也会触发,这很奇怪@@") 我想要的是让 onLongClick 只触发一次长按。 所以我修改了代码:
onLongClickListener :
@Override
public boolean onLongClick(View v) {
do something ...
myButton.setLongClickable(false);
return true;
}
onClickListener :
@Override
public void onClick(View v) {
myButton.setLongClickable(true);
do something else ...
}
不幸的是,onLongClick 触发后 onClick 回调也被锁定了! 我不能再解锁按钮了:| 我的代码有什么问题?另外,为什么在长按后松开按钮时 onClick 有时会起作用?
【问题讨论】: