【问题标题】:Uncheck radio button if already checked?如果已选中,请取消选中单选按钮?
【发布时间】:2014-02-03 14:36:14
【问题描述】:

我有一个RadioGroup,里面有 6 个单选按钮。

如果用户单击已选中的单选按钮,有没有办法取消选中单选按钮?

我的意思是,如果用户单击已检查的radio button,是否有任何方法可以清除检查整个无线电组或不存储值?

我知道存在 ClearCheck() 和 setChecked(false),但我不知道如何以及在何处使用它们,因为 SetOncheckChanged 侦听器仅在检查状态更改时运行。当您单击已选中的单选按钮时,它不会运行。我想我应该为 radiogroup 使用 SetOnClickListener 但我不知道如何找到选中的单选按钮?

【问题讨论】:

  • 我认为 radioGroup 的目的是将检查限制为单个 radioButton。
  • 在这些情况下,首先我先检查 radiobtn 到 tempRdBtn,然后当另一个检查时,我取消选中 tempRdBtn 并将新检查的一个放在此。也许这对你有帮助。
  • 当用户选择其他 5 个按钮中的任何一个时,该单选按钮将变为未选中状态。如果您想让用户选择不输入,请尝试将第 7 个按钮设置为“以上都不是”,而不是尝试取消选中所有选项。
  • 是的,这确实是一个很好的解决方案 Shakti。谢谢。

标签: android


【解决方案1】:

使用 ::
// 如果我们已经有一个选中的单选按钮并想记住它

 if(mCurrentlyCheckedRB == null) 
        mCurrentlyCheckedRB = (RadioButton) v;
        mCurrentlyCheckedRB.setChecked(true);
    }

//点击当前或希望查看它是否已存储

  if(mCurrentlyCheckedRB == v)
        return;

//否则,取消选中当前选中的RadioButton,选中新的单选按钮

mCurrentlyCheckedRB.setChecked(false);
((RadioButton)v).setChecked(true);
mCurrentlyCheckedRB = (RadioButton)v;  

【讨论】:

  • 我没有投票... Nayak 你能告诉我应该在哪里使用这些代码吗? oncheckedchange 监听器还是 onclicklistener?
猜你喜欢
  • 2011-11-05
  • 2021-11-16
  • 1970-01-01
  • 2015-09-08
  • 1970-01-01
  • 1970-01-01
  • 2013-04-09
  • 2012-01-23
  • 2012-03-17
相关资源
最近更新 更多