Android中的Radiobutton功能

时间:2013-11-16 05:23:14

标签: android

XML

<LinearLayout
            android:id="@+id/linearLayout_individualdays"
            android:layout_width="wrap_content"
            android:layout_height="40dp"
            android:layout_below="@+id/linearLayout_type_of_days"
            android:gravity="center|top"
            android:orientation="horizontal"
            android:paddingLeft="5dp"
            android:paddingTop="10dp" >

            <RadioGroup
                android:id="@+id/radioGroup2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:visibility="gone"
                android:orientation="horizontal" >

                <RadioButton
                    android:id="@+id/BreakfastRG_ID"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginRight="2dp"
                    android:layout_weight=".5"
                    android:background="@drawable/yourbuttonbackground"
                    android:button="@android:color/transparent"
                    android:checked="true"
                    android:gravity="center_horizontal"
                    android:padding="5dp"
                    android:text="Mon"
                    android:textSize="15dp" />

                <RadioButton
                    android:id="@+id/LunchRG_ID"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginRight="2dp"
                    android:layout_weight=".5"
                    android:background="@drawable/yourbuttonbackground"
                    android:button="@android:color/transparent"
                    android:gravity="center_horizontal"
                    android:padding="5dp"
                    android:text="Tue"
                    android:textSize="15dp" />

                <RadioButton
                    android:id="@+id/DinnerRG_ID"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginRight="2dp"
                    android:layout_weight=".5"
                    android:background="@drawable/yourbuttonbackground"
                    android:button="@android:color/transparent"
                    android:gravity="center_horizontal"
                    android:padding="5dp"
                    android:text="Wed"
                    android:textSize="15dp" />

                <RadioButton
                    android:id="@+id/BreakfastRG_ID"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginRight="2dp"
                    android:layout_weight=".5"
                    android:background="@drawable/yourbuttonbackground"
                    android:button="@android:color/transparent"
                    android:checked="true"
                    android:gravity="center_horizontal"
                    android:padding="5dp"
                    android:text="Thu"
                    android:textSize="15dp" />

                <RadioButton
                    android:id="@+id/LunchRG_ID"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginRight="2dp"
                    android:layout_weight=".5"
                    android:background="@drawable/yourbuttonbackground"
                    android:button="@android:color/transparent"
                    android:gravity="center_horizontal"
                    android:padding="5dp"
                    android:text="Fri"
                    android:textSize="15dp" />

                <RadioButton
                    android:id="@+id/DinnerRG_ID"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginRight="2dp"
                    android:layout_weight=".5"
                    android:background="@drawable/yourbuttonbackground"
                    android:button="@android:color/transparent"
                    android:gravity="center_horizontal"
                    android:padding="5dp"
                    android:text="Sat"
                    android:textSize="15dp" />

                <RadioButton
                    android:id="@+id/DinnerRG_ID"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginRight="2dp"
                    android:layout_weight=".5"
                    android:background="@drawable/yourbuttonbackground"
                    android:button="@android:color/transparent"
                    android:gravity="center_horizontal"
                    android:padding="5dp"
                    android:text="Sun"
                    android:textSize="15dp" />
            </RadioGroup>
        </LinearLayout>
  • 现在输出 ::

enter image description here

  • 如果我选择其他选项,包括其他人说“tue”,则选项“wed”取消选择

enter image description here


  • 但我希望能够在需要时选择所有

enter image description here

  • 如果需要,则为

enter image description here


如何解决此问题,希望我很清楚

3 个答案:

答案 0 :(得分:2)

您可以按如下方式尝试布局:

在启动时不会选择任何单选按钮,但您可以单独选择它们。

你只需将它们放在RadioGroup之外。

但如果错误选择,您将无法取消选择这些单选按钮。

复选框是一种正确的方法。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@color/orange"
    android:orientation="vertical" >

    <RadioButton
        android:id="@+id/radioButton2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="RadioButton" />

    <RadioButton
        android:id="@+id/radioButton1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="RadioButton" />

    <RadioButton
        android:id="@+id/radioButton3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="RadioButton" />

    <RadioButton
        android:id="@+id/radioButton4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="RadioButton" />

    <RadioButton
        android:id="@+id/radioButton5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="RadioButton" />

    <RadioButton
        android:id="@+id/radioButton6"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="RadioButton" />

</LinearLayout>

答案 1 :(得分:2)

维基百科中的Radiobutton说

  

RadioButton 或选项按钮是一种图形用户界面   允许用户仅选择一个预定义选项集的元素。

您必须使用复选框而不是单选按钮才能选择多个选项,否则您正在做一些在移动/网络UI中本质上错误的内容。

如果仍想使用RadioButtons,请不要将它们全部放在RadioGroup中。要么将它们分成几组,要么完全自己管理它们。

答案 2 :(得分:1)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<CheckBox
    android:id="@+id/checkBox1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="checkBox1" />

<CheckBox
    android:id="@+id/checkBox2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="checkBox2"
    android:checked="true" /> 

<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Check" />

</LinearLayout>

代码:

public class MainActivity extends Activity {

private checkBox1,checkBox2;
private Button btn;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
    btn = (Button) findViewById(R.id.button1);
    checkBox1 = (CheckBox) findViewById(R.id.checkBox1);
    checkBox2 = (CheckBox) findViewById(R.id.checkBox2);

    btn.setOnClickListener(new OnClickListener() {

      @Override
      public void onClick(View v) {

        StringBuffer result = new StringBuffer();
        result.append("checkBox1 : ").append(checkBox1.isChecked());
        result.append("checkBox2 : ").append(checkBox2.isChecked());

        Toast.makeText(MainActivity.this, result.toString(),
            Toast.LENGTH_LONG).show();

  }
});

 }
}

我希望这会对你有所帮助。