【问题标题】:Android RadioButton not able to unset using setChecked(false) methodAndroid RadioButton 无法使用 setChecked(false) 方法取消设置
【发布时间】:2011-05-01 10:21:19
【问题描述】:

如果我第一次设置一个单选按钮,它工作正常。但是如果我通过调用取消选择它 ((RadioButton) findViewById(R.id.ID)).setChecked(false); 然后,稍后即使我尝试通过调用 setChecked(true) 将其选中,除非用户从屏幕中选择它,否则它也将不起作用。

有人遇到过这个吗?还是只有我一个人?

        if(Val != null){
        if( ((RadioButton) findViewById(R.id.ID1)).getText().toString().trim().equals(Val))
        ((RadioButton) findViewById(R.id.ID1)).setChecked(true);
        else if(((RadioButton) findViewById(R.id.ID2)).getText().toString().trim().equals(Val))
        ((RadioButton) findViewById(R.id.ID2)).setChecked(true);
        }
        else {
            ((RadioButton) findViewById(R.id.ID1)).setChecked(false);
            ((RadioButton) findViewById(R.id.ID2)).setChecked(false);
        }

如果 else 部分至少执行一次,那么一切都会变得一团糟。 当我通过调试器时,我可以看到执行以正确的路径进行并将其设置为 true。它只执行一次,我检查过。而且我不会在代码的任何其他部分将其重置为 false。

【问题讨论】:

  • 我们可以看看你的源代码吗?
  • 经过groups.google.com/group/android-developers/browse_thread/thread/… 之后,我尝试了这个 android:saveEnabled="false",但这对我没有帮助。哇,至少我并不孤单……
  • 有同样的问题,虽然我的布局是图像 - 文本 - 检查图像 - 文本 - 检查我不能只制作一个 RadioGroup ...我发现它是一个“错误”,而我不能使用 setChecked(false) 设置 Radio android-developer 必须做的事情。感谢您的信息,将尝试...
  • 欢迎您。这对你有用吗?

标签: android radio-button


【解决方案1】:

我找到了解决办法。

无法取消选中特定的单选按钮。您只能将其他项设置为 true。

所以要清除所有选中的项目,你应该调用 RadioGroup 上的clearcheck() 方法。

所以我的其他部分是

        else {
            ((RadioGroup) findViewById(R.id.ID0)).clearCheck();
        }

【讨论】:

  • 正是我需要的!有时单选按钮会变得非常混乱。谢谢!
  • 或者在我的情况下,当我取下 RadioGroup 并使用两个 RadioButtons 播放时,它变得更清晰了。
  • 这解决了我的问题。我试图重新检查已经选中的单选按钮,它在 UI 中显示为未选中。
【解决方案2】:

选择一个不可见的单选按钮并检查它。组的所有其他单选按钮将自动取消选中..

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多