【问题标题】:Android Radio Group multiple selection issueAndroid Radio Group 多选问题
【发布时间】:2016-12-20 14:09:40
【问题描述】:

我正在以编程方式在单选组中创建一系列单选按钮:

for (Soldier soldier:clickedSquad.getMembers()) {
                Integer I=0;
                soldier.setId(I);
                RadioButton radiobutton=new RadioButton(getContext());
                radiobutton.setText(soldier.toString());
                radiobutton.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
                radiobutton.setId(soldier.getId());
                I++;
                soldierRgrp.addView(radiobutton);
            }

它按照我的意图创建单选按钮,但是当我单击几个时,它们都像复选框一样保持单击状态,并且我只需要像单选按钮通常那样一次单击一个。

知道为什么会这样吗?

radiogroup 在 XML 中,如下所示:

    <RadioGroup
    android:layout_margin="10dp"
    android:id="@+id/reg_rgrp_soldiers"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">
</RadioGroup>

【问题讨论】:

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


    【解决方案1】:

    只有当它们相同 id 时,RadioButtons 才会这样做。在你的情况下,他们这样做!您每次都在初始化变量I=0。因此,每个士兵都被赋予相同的id。士兵不是特别喜欢这样!将您的代码更改为:

          int i=0;
          for (Soldier soldier:clickedSquad.getMembers()) {
                soldier.setId(i++);
                RadioButton radiobutton=new RadioButton(getContext());
                radiobutton.setText(soldier.toString());
                radiobutton.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
                radiobutton.setId(soldier.getId());
                soldierRgrp.addView(radiobutton);
            } 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-02-21
      • 2020-12-01
      • 2019-07-08
      • 2016-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多