出现“Android的setOnClickListener被一次点击触发两次”问题的原因通常是由于多次设置了点击事件监听器。下面是解决这个问题的一个示例代码:
Button button = findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
private long lastClickTime = 0;
@Override
public void onClick(View v) {
long currentTime = System.currentTimeMillis();
if (currentTime - lastClickTime > 500) {
// 处理点击事件
// ...
lastClickTime = currentTime;
}
}
});
上述代码中,我们使用了一个lastClickTime
变量来记录上一次点击事件的时间戳。在点击事件触发时,我们首先获取当前时间戳,然后与上一次点击时间戳进行比较。如果两次点击时间间隔大于500毫秒(可以根据需要调整),则处理点击事件并更新lastClickTime
变量;否则,忽略该点击事件,避免重复触发。