这是我之前面试遇到过的题目事件的机制
1、首先要知道默认情况下监听事件触发的机制
OnTouch-->OnLongClick-->OnClick
btnListener.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View view, MotionEvent motionEvent) { LogUtil.d("执行Touch"); return false; } }); btnListener.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View view) { LogUtil.d("执行LongClick"); return false; } }); btnListener.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { LogUtil.d("执行Click"); } });2、如果将OnTouch的返回值设置为true,就是监听事件不往下传递,因此不会触发OnLongClick和OnClick事件
3、如果将OnLongClick的返回值设置为true,那么只会触发OnTouch和OnLongClick事件
没什么难点,理解记住就行啦!