我试图阻止用户两次单击我的按钮。我尝试在脚本上使用setEnabled
,但是什么也没有发生!我的问题是,我尝试在setOnClickListener
中这样做。
有人可以帮我找到解决方案,以防止在所有内容都上传到服务器时单击吗?
newPostBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// I want to set my button to enabled false here
}
}
答案 0 :(得分:2)
为什么不使用setOnAction
?
newPostBtn.setOnAction(e -> {
(your logic goes here)
newPostBtn.setEnabled(false);
}) ;
答案 1 :(得分:1)
1)创建一个实例变量:
private int buttonClicks;
2)在onCreate上实例化变量
buttonClicks = 0;
3)在onClickListener中设置if()语句
newPostBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (buttonClicks == 1){
buttonClicks = 0;
//do nothing
} else {
//run code
}
buttonClicks++;
答案 2 :(得分:0)
以下是解决此问题的三种方法:
使用setEnabled(false)
禁用按钮,直到用户可以安全再次单击它为止。
Above给出的解决方案也是一种解决方法。
另一种解决方法是
private long lastClickTime = 0;
View.OnClickListener buttonHandler = new View.OnClickListener() {
public void onClick(View v) {
// preventing double, using threshold of 1000 ms
if (SystemClock.elapsedRealtime() - lastClickTime < 1000){
return;
}
lastClickTime = SystemClock.elapsedRealtime();
}
}
答案 3 :(得分:0)
有时下一个屏幕/动作要花一些时间才能执行,而频繁点击或单击视图会多次执行下一个屏幕/动作。我通过计算两次单击之间的时间来解决此问题。请在下面找到代码示例:
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// mis-clicking prevention, using threshold of 1000 ms
if (SystemClock.elapsedRealtime() - mLastClickTime < 1000){
return;
}
mLastClickTime = SystemClock.elapsedRealtime();
// do your action here
}
}
答案 4 :(得分:0)
您也可以尝试 setClickable
在Android中,不可点击的小部件将不会响应点击事件
view.setClickable(false);
nameserver 169.254.169.254
search c.k8s-project-193906.internal google.internal**