可以选择同一RadioGroup内的RadioButtons,但两个按钮都可以选择

时间:2016-01-03 10:13:09

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

我在同一RadioButtons内有两个RadioGroup。但是在每个RadioButton旁边我想要一个ImageButton(信息)。因此我的代码如下:

<RadioGroup>
    <LinearLayout>     //Horizontal 
        <RadioButton/>
        <ImageButton/>
    </LinearLayout>
    <LinearLayout>     //Horizontal 
        <RadioButton/>
        <ImageButton/>
    </LinearLayout>
<RadioGroup/>

但是现在我遇到的问题相当简单,可以选择两个RadioButtons。我希望一次只能选择一个。

Plz忽略任何拼写错误。一定要从手机发布这个。

5 个答案:

答案 0 :(得分:1)

RadioGroupLinearLayout个自己,只支持RadioButton作为直接子女。您可以看到此行为here

由于您将RadioButton包裹在LinearLayout中,因此您无法做到这一点。

您有两种可能:您可以复制代码并制作自己的RadioGroup
或者您可以extend RadioButton只需在RadioButton内应用自定义布局 来更改其外观。

答案 1 :(得分:0)

RadioGroup不允许任何ViewGroup作为其子级。您必须使用drawableRight属性。

答案 2 :(得分:0)

我找到了一个适合我的解决方案,因为我的RadioButtons很少。

我为每个RadioButton设置一个OnClickListener()并设置其他未选中的。

final RadioButton a1 = (RadioButton) findViewById(R.id.a1);
final RadioButton a2 = (RadioButton) findViewById(R.id.a2);
    a1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            a2.setChecked(false);
        }
    });
    a2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            a1.setChecked(false);
        }
    });

答案 3 :(得分:0)

  1. 您只能使用无线电组按钮
  2. 如果你不想要这个然后使用我的代码并删除radiogroup你可以使用自定义单选按钮

      final RadioButton a1 = (RadioButton) findViewById(R.id.a1);
     final RadioButton a2 = (RadioButton) findViewById(R.id.a2);
     a1.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v) {
          a2.setChecked(false);                    
          a1.setChecked(true);
    
      }
         });
       a2.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        a1.setChecked(false);
        a2.setChecked(true);
    
    }
    });
    

答案 4 :(得分:-1)

更新:我认为这会对你有所帮助。我有同样的问题。

<LinearLayout> //Horizontal
    <LinearLayout>//Vertical
        <ImageButton/>
        <ImageButton/>
    </LinearLayout>
    <LinearLayout>//Vertical
        <RadioGroup> //Vertical
            <RadioButton/>
            <RadioButton/>
        </RadioGroup>
    </LinearLayout>
</LinearLayout>

1 [这就是它最终会出现的方式]