java - 能够选择同一组中的两个单选按钮

标签 java android eclipse radio-button radio-group

请看下面的代码

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="#ffffff" >

    <RadioGroup
        android:id="@+id/save_selection_group"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_alignBaseline="@+id/save_txt"
        android:layout_toRightOf="@+id/save_txt" >
    </RadioGroup>

    <RadioButton
        android:id="@+id/radio0"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/save_txt"
        android:layout_alignBottom="@+id/save_txt"
        android:layout_toRightOf="@+id/save_selection_group"
        android:checked="true"
        android:text="SD" />

    <RadioButton
        android:id="@+id/radio1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/radio0"
        android:layout_alignBottom="@+id/radio0"
        android:layout_toRightOf="@+id/radio0"
        android:text="Phone" />

    <TextView
        android:id="@+id/save_txt"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginTop="22dp"
        android:paddingTop="5dp"
        android:text="@string/save_to" />

    <TextView
        android:id="@+id/save_name_txt"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/save_txt"
        android:layout_marginTop="50dp"
        android:text="@string/save_name" />

    <EditText
        android:id="@+id/save_name_edt"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/save_txt"
        android:layout_toRightOf="@+id/save_name_txt"
        android:layout_alignBaseline="@+id/save_name_txt"
        android:layout_marginLeft="15dp"
        android:paddingBottom="10dp"
        android:ems="8" >

        <requestFocus />
    </EditText>

    <Button
        android:id="@+id/save_voice_note_button"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/save_txt"
        android:layout_toRightOf="@+id/save_name_edt"
        android:layout_alignBaseline="@+id/save_name_edt"
        android:layout_marginLeft="5dp"
        android:text="@string/save" />

</RelativeLayout>

Java代码

private class SaveEvent implements OnClickListener
    {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            final Dialog dialog = new Dialog(VoiceNotes.this);
            dialog.setContentView(R.layout.save_dialog);
            dialog.setTitle("Save your file");
            dialog.show();

            final Button saveButton = (Button)dialog.findViewById(R.id.save_voice_note_button);
            final RadioGroup saveLocationRadioGroup = (RadioGroup)dialog.findViewById(R.id.save_selection_group);

            final String spokenText = voiceEdt.getText().toString();


            //Writing the Event handler for the Save button
            saveButton.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub

                    int selectedLocationId = saveLocationRadioGroup.getCheckedRadioButtonId();
                    RadioButton saveLocationRadioButton = (RadioButton)dialog.findViewById(selectedLocationId);

                    if(saveLocationRadioButton.getText().equals("SD"))
                    {
                        }

                }
            });


        }

}

在这里,我可以选择两个单选按钮!但你知道,这就是他们的目的。应该选择一个!这是为什么?

最佳答案

您需要将单选按钮添加到RadioGroup

举个例子:

<RadioGroup xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">
    <RadioButton android:id="@+id/radio_pirates"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/pirates"
        android:onClick="onRadioButtonClicked"/>
    <RadioButton android:id="@+id/radio_ninjas"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/ninjas"
        android:onClick="onRadioButtonClicked"/>
</RadioGroup>

关于java - 能够选择同一组中的两个单选按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19973352/

相关文章:

java - 同时运行多个Asynctask

java - 打印多个对象

android - 从具有共享首选项的列表中保存复选框状态

android - Gradle 同步失败 : Argument for @NotNull parameter 'aFileName' of com/intellij/openapi/util/io/FileUtil. toSystemIndependentName 不能为空

java - 游戏应用不断尝试连接 Google Play 服务而不放弃

java - Eclipse 不断构建工作区

Java byte 到 int 强制转换

java.lang.IndexOutOfBoundsException : setSpan (N . .. N) 结束超过长度 10500

java - SonarLint super 慢

java - 在java中进行二进制到十六进制转换时,我的答案前面总是有一个空