java - 调用 setEnabled(false) 按钮后仍然可以再按一次
问题描述
单击按钮时,我立即调用setEnabled
false 但这不会禁用按钮,我必须再次按下才能禁用。
我试图放在setEnabled
不同的地方,但结果相同。
chooseLeft.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
chooseLeft.setEnabled(false);
chooseRight.setEnabled(true);
docRefPosts.get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
@Override
public void onComplete(@NonNull Task<DocumentSnapshot> task) {
if (task.isSuccessful()) {
if(!chooseRight.isEnabled())
docRefPosts.update("votesForRight", FieldValue.increment(-1));
docRefPosts.update("votesForLeft", FieldValue.increment(1));
}
}
});
}
});
chooseRight.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
chooseRight.setEnabled(false);
docRefPosts.get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
@Override
public void onComplete(@NonNull Task<DocumentSnapshot> task) {
if (task.isSuccessful()) {
if(!chooseLeft.isEnabled())
docRefPosts.update("votesForLeft", FieldValue.increment(-1));
docRefPosts.update("votesForRight", FieldValue.increment(1));
}
}
});
chooseLeft.setEnabled(true);
}
});
它应该作为一个单选按钮,一旦选择,一次只能选择一个。
解决方案
setClickable(false)
如果您希望取消按钮点击,您也需要使用
chooseLeft.setClickable(false);
chooseLeft.setEnabled(false);
chooseRight.setClickable(true);
chooseRight.setEnabled(true);
推荐阅读
- php - codeigniter 文件上传,两次提交到数据库
- c# - 正则表达式匹配选择 1 个字符太多
- java - 在 Swing 中更改默认 GUI 颜色
- python - django-summernote 附加来自另一个模型/ForeignKey 的图像
- git - mac 超时时 git 的 ssh 配置文件
- python - 将使用 AutoML Tables 创建的 Tensorflow 1 pb 模型转换为 TensorflowJS 以在 NodeJS 中运行
- regex - 当有换行符时,如何在多行上匹配 Golang 正则表达式?
- jenkins - 如何在 Jenkins 全局库中使用 sh
- tensorflow - Vega 56 带宽缓慢(不仅)TensowFlow - 为什么以及如何?
- google-apps-script - 按标签排序已删除标签的电子邮件