你的位置:首页 > 操作系统

[操作系统]setOnLongClickListener中return值


今天在做一个按钮的长按事件,长按的时候弹出一个Dialog弹出框,点击则是进入到下一个界面。

 

在我调试的时候,发现长按确实弹出了一个Dialog,但是同事他还跳转到下一个界面了。

 

这么说,就是在我长按的时候,出发了setOnLongClickListener和OnClick事件。

 

后面查询资料发现,确实如此。

 

setOnLongClickListener中return的值决定是否在长按后再加一个短按动作true为不加短按,false为加入短按

比如:以下代码只会执行长按事件mBtn.setOnLongClickListener(new OnLongClickListener() {	@Override	public boolean onLongClick(View v) {		return true;	}});

 

打个比方,就是说当return返回值为true的时候,代表这个事件已经消耗完了,返回值为false的时候他还会继续传递,结果再加上一个短按。

 

其次,Activity中的onKeyDown也是如此。

 

返回true的时候表示事件已经完整的执行完毕了,不再执行其他的回调函数,返回false表示并未完全处理完该事件还会继续调用其他回调函数。具体的效果有时间的童鞋可以尝试一下。