Android-点击后无法设置可点击(false)按钮



我有一个类似开关的按钮,在点击后我试图setClickable(false(,这样只会处理第一次点击(在意外双击/多次单击的情况下,会忽略额外的单击(。

这里有一个类似的代码:

Button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Button.setClickable(false);
//do other things
}
});

然后,最终,我在某个地方有了一个代码,我将根据状态变量将可点击重置为true,这样我就可以关闭了。

问题是,当我很快点击按钮时,似乎后续的点击仍然得到了处理。setClickable((的效果是否有延迟?

此外,我读过关于使用setEnabled(false(的文章,但在我的情况下无法使用它。我需要该按钮仍然处于启用状态,但不能单击。

根据您的评论判断,您可能需要这样的东西。

Boolean SWITCH_ON = false;
Button.setOnClickListener(new OnClickListener() {

public void onClick(View v) {
if(!SWITCH_ON ){
SWITCH_ON = true;   
}
}
});
Button.setOnLongClickListener(new View.OnLongClickListener() {
public boolean onLongClick(View v) {

if(SWITCH_ON ){
// do your task for long click here ...SWITCH_ON 
}
return true;
}
});

您可以在onClick方法中使用button.setEnabled(false);来禁用该按钮。

禁用的按钮不会触发onClick方法,您可以在需要时使用button.setEnabled(true);轻松地重新启用它。

您可以添加另一个名为buttonEnabled左右的变量,并使用true对其进行初始化。然后在onclick中这样做:

Button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Button.setClickable(false);
if(buttonEnabled) {
//do other things
}
buttonEnabled = false;
}
});

注意,如果你想重新激活,你需要将变量更改为

相关内容

  • 没有找到相关文章

最新更新