Android RadioGroup无法正常工作

扬·福克

我正在尝试创建2行单选按钮,如下图所示。但是,当我直接将其放在LinearLayout上方时,我的无线电组无法正常工作。

我是android开发的新手。因此,如果有更好的选择。欢迎他们

在此处输入图片说明

我的密码

<RadioGroup
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">
    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/linearLayout2"
        android:background="@android:color/holo_blue_dark">
        <RadioButton
            android:text="1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/radioButton33" />
        <RadioButton
            android:text="2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/radioButton34" />
        <RadioButton
            android:text="3"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:id="@+id/radioButton35" />
        <RadioButton
            android:text="4"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:id="@+id/radioButton36" />
        <RadioButton
            android:text="5"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:id="@+id/radioButton37" />
        <RadioButton
            android:text="6"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:id="@+id/radioButton38" />
        <RadioButton
            android:text="7"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:id="@+id/radioButton39"
            android:layout_marginRight="1.0dp" />
    </LinearLayout>
    <LinearLayout
        android:orientation="horizontal"
        android:minWidth="25px"
        android:minHeight="25px"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/linearLayout3"
        android:background="@android:color/holo_blue_dark">
        <RadioButton
            android:text="8"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:id="@+id/radioButton40" />
        <RadioButton
            android:text="9"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:id="@+id/radioButton41" />
        <RadioButton
            android:text="10"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:id="@+id/radioButton42" />
        <RadioButton
            android:text="11"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:id="@+id/radioButton43" />
        <RadioButton
            android:text="12"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:id="@+id/radioButton44" />
        <RadioButton
            android:text="13"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:id="@+id/radioButton45" />
        <RadioButton
            android:text="14"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:id="@+id/radioButton46" />
    </LinearLayout>
</RadioGroup>

谢谢

gmetax

您可以创建2个单选组并处理RadioButtonCliked事件中的所有示例

public void RadioButtonClicked(View view) {
    boolean checked = ((RadioButton) view).isChecked();

    switch(view.getId()) {
        case R.id.radioButton33: {  
            NameRadioGroup2.clearCheck();
            NameRadioGroup1.check(view.getId());
            break;
        }

        case R.id.radioButton40: {
            NameRadioGroup1.clearCheck();
            NameRadioGroup2.check(view.getId());          
            break;
        }
        {here implement cases for other radio buttons}
}


或者

public void RadioButtonClicked(View view) {
    boolean checked = ((RadioButton) view).isChecked();
    if(ButtonFromRadioGroupOne(view.getId())
    {
       NameRadioGroup2.clearCheck();
       NameRadioGroup1.check(view.getId());
    }
    else
    {
       NameRadioGroup1.clearCheck();
       NameRadioGroup2.check(view.getId());
    }
}

private bool ButtonFromRadioGroupOne(int id)
{
    return id == R.id.radioButton33 || id == R.id.radioButton34 || id == R.id.radioButton35 || id == R.id.radioButton36 || id == R.id.radioButton37 || id == R.id.radioButton38 || id == R.id.radioButton39;
}

或者您可以为每个单选组设置2个RadioButtonClicked事件。

public void RadioButtonClicked1(View view) {
    RadioButtonClicked(NameRadioGroup1, NameRadioGroup2, view);
}

public void RadioButtonClicked2(View view) {
    RadioButtonClicked(NameRadioGroup2, NameRadioGroup1, view);
}

public void RadioButtonClicked(RadioGroup selected, RadioGroup cleared, View view) {
    boolean checked = ((RadioButton) view).isChecked();
    cleared.clearCheck();
    selected.check(view.getId());
}     

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章