只选择一个单选按钮

时间:2017-09-15 15:05:07

标签: java android android-radiobutton

我想一次只选择一个单选按钮,但是当我点击另一个按钮选择其中一个单选按钮后,它们都被选中,我该怎么做才能解决这个问题。 Screenshot of the activity main

我的MainActivity.java代码是

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

}

public void onClick(View view) {
    TextView text=(TextView)findViewById(R.id.txt1);
    text.setText("Wrong Answer");
}

public void onClick1(View view) {
    TextView text=(TextView)findViewById(R.id.txt1);
    text.setText("You are Right");
}
}

2 个答案:

答案 0 :(得分:0)

RadioButton应该是RadioGroup的直接子节点,否则分组不起作用。

<RadioGroup
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:id="@+id/radioGroup">
    <RadioButton
        android:layout_width="0dp"
        android:layout_weight="50"
        android:layout_height="wrap_content"
        android:text="Debit"
        android:id="@+id/rDebit"
        android:checked="false"
         />

    <RadioButton
        android:layout_width="0dp"
        android:layout_weight="50"
        android:layout_height="wrap_content"
        android:text="Credit"
        android:id="@+id/rCredit"
        android:checked="false" />

</RadioGroup>

在java文件中

RadioGroup radioGroup;

radioGroup = (RadioGroup) findViewById(R.id.radioGroup);

做点什么

 if (radioGroup.getCheckedRadioButtonId() == R.id.rCredit)
{
// do something
}

答案 1 :(得分:0)

已接受的答案已删除,无法取消删除。可能是因为它只是一个到外部网站的链接。所以这是一个更详细的版本:

您需要将布局文件中相同RadioGroup内的单选按钮分组。

见这里:https://developer.android.com/guide/topics/ui/controls/radiobutton.html

应用于您的问题,这可能如下所示:

<RadioGroup 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">

    <RadioButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="onClick"
        android:text="Dennis Ritchie" />

    <RadioButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="onClick1"
        android:text="James Gosling" />
</RadioGroup>