Button button = (Button) findViewById(R.id.button); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Log.i("test", "触发点击"); } }); button.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View view) { Log.i("test", "触发长按"); return false; } }); button.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View view, MotionEvent motionEvent) { switch (motionEvent.getAction()) { case MotionEvent.ACTION_DOWN: { Log.i("test", "按下"); break; } case MotionEvent.ACTION_MOVE: { Log.i("test", "移动"); break; } case MotionEvent.ACTION_UP: { Log.i("test", "抬起"); break; } } //返回true不响应click事件 return true; } });
如上,日志只会打印按下/移动/抬起,而不会打印触发点击
touch事件早于点击事件,需要需要触发点击事件,需要将ontoch处理方法中的return true改成return false
le.li
浙公网安备 33010602011771号