【问题标题】:Android correct Radiobutton layout in groupAndroid在组中正确的单选按钮布局
【发布时间】:2013-09-14 00:09:30
【问题描述】:

我创建了一个 RadioGroup,其中包含以下 RadioButtons我想要实现的布局

XML 层次结构:

  • 无线电组
    • 线性布局
      • 单选按钮
      • 单选按钮
    • 线性布局
      • 单选按钮
      • 单选按钮
    • 单选按钮

当然这意味着只有 1 个 RadioButton 仍然是 RadioGroup 的直接子级,这意味着当我单击任何 RadioButtons 时,已经选中的那个不会取消选中。

我正在使用一个非常紧凑的代码来获取选中的 RadioButton,如果它们是直接子代的话。

RadioGroup rg = (RadioGroup) v.findViewById(R.id.rgTopupValue);
View radioCheckedView = rg.findViewById(rg.getCheckedRadioButtonId());
RadioButton rb = (RadioButton) rg.getChildAt(rg.indexOfChild(radioCheckedView));

有没有办法解决这个问题,不使用极长的案例

【问题讨论】:

  • 请说清楚..我不知道您是否想让所有单选按钮都具有来自同一组的功能或什么??
  • 最好是,但那是不可能的。无论如何,我还没有找到我的确切答案。谷歌应该让 RadioButtons 的布局更容易......

标签: android android-layout radio-button radiobuttonlist radio-group


【解决方案1】:

您的问题似乎没有真正的答案。我认为没有真正的解决方案。但这可能会解决您的问题(这是一种解决方法):

    RadioButton rb1, rb2, rb3;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    ...
    rb1 = (RadioButton) findViewById(R.id.rb1);
    rb2 = (RadioButton) findViewById(R.id.rb2);
    rb3 = (RadioButton) findViewById(R.id.rb3);

    rb1.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            rb1.setChecked(true);
            rb2.setChecked(false);
            rb3.setChecked(false);
        }
    });

    rb2.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            rb1.setChecked(false);
            rb2.setChecked(true);
            rb3.setChecked(false);
        }
    });

    rb3.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            rb1.setChecked(false);
            rb2.setChecked(false);
            rb3.setChecked(true);
        }
    });
}

【讨论】:

  • 是的,恐怕这可能是唯一可行的方法。可惜时间太长了。
  • 没那么长,但为什么要尽可能短呢?
  • 我不知道,我想这是个人喜好。由于 RadioGroups 是 LinearLayouts,我可以使用那些嵌套的吗?这样我就可以一次取消选中 2 个 RadioButtons(在我的情况下)
  • 是的,你可以。而且你也可以至少投票支持我;)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-03-30
  • 1970-01-01
  • 1970-01-01
  • 2020-12-23
  • 2011-04-26
  • 1970-01-01
  • 2012-09-29
相关资源
最近更新 更多