我有一个名为CheckIn的按钮.看看我的代码.
checkIn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(HomeSafeActivity.this, "Normal Press", Toast.LENGTH_LONG).show();
});
checkIn.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
Toast.makeText(HomeSafeActivity.this, "Long press", Toast.LENGTH_LONG).show();
return false;
}
});
Run Code Online (Sandbox Code Playgroud)
现在,当我正常按下按钮时,信息显示为正常按下.当我长按按钮时,信息显示为长按和正常按两者.我想要的是,当我长按按钮时,长按事件不应该触发正常的按键事件.我怎么能实现这个?
Dee*_*rma 41
我得到了我的问题的解决方案.返回真实而非虚假.见下文: -
checkIn.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
Toast.makeText(HomeSafeActivity.this, "Long preess", Toast.LENGTH_LONG).show();
return true;
}
});
Run Code Online (Sandbox Code Playgroud)
Sun*_*mar 12
onLongClick() - 这将返回一个布尔值,表示您是否已经消耗了该事件,并且不应该进一步携带它.也就是说,return true表明你已经处理了这个事件,它应该在这里停止; return false如果您没有处理它和/或该事件应该继续任何其他事件on-click listeners.
小智 5
如果长按,您应该返回true
例:
btnBookingMasterCab.setOnLongClickListener(new OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
if(preCheckoutInfo!=null){
rlChooseCard.setVisibility(View.VISIBLE);
}
return true;
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20891 次 |
| 最近记录: |