AmazingCounters.com

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表示并未完全处理完该事件还会继续调用其他回调函数。具体的效果有时间的童鞋可以尝试一下。

 

posted @ 2016-02-22 16:45  rencm  阅读(13965)  评论(0编辑  收藏  举报