可能是由于其他事件引起的误触发,可以通过以下代码解决:
Button button = findViewById(R.id.btn);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// do something
}
});
button.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
// do something
return true;
}
return false;
}
});
这里我们对Button设置了OnClickListener和OnTouchListener,当按钮被点击时,OnClickListener会触发相应的事件,而OnTouchListener则监听到按钮被按下后立即返回true,从而防止误触发。