默认情况下,单选框按钮显示为一个圆形图标,并且在该图标旁边放置一些说明性文字。
在Android中,单选按钮使用RadioButton表示,RadioButton又是Button的子类,所以单选按钮可以直接使用Button支持的各种属性。
Android中,可以使用两种方法向屏幕中添加单选按钮,一种是通过在XML布局文件中使用<RadioButton>标记添加;另一种是在Java文件中,通过new关键字创建。
推荐使用XML配置,基本语法如下:
<RadioButton android:text="显示文本" android:id="@+id/ID号" android:checked="true|false" android:layout_width="wrap_content" android:layout_height="wrap_content"> </RadioButton>
RadioButton组件的android:checked属性用于指定选中状态,属性值为true时,表示选中,false表示未选中。默认为false。
通常情况下,RadioButton组件要与RadioGroup组件一起使用,组成一个单选按钮组。在XML布局文件中,添加RadioGroup组件的基本格式如下:
<RadioGroup android:id="@+id/ID号" android:orientation="horizontal" android:layout_width="warp_content" android:layout_height="warp_content"> <!--添加多个RadioButton组件--> </RadioGroup>
一个简单的选择性别的组件例子:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal" android:background="#FFFFFF"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="性别:" android:height="50px"/> <RadioGroup android:id="@+id/radioGroup1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal"> <RadioButton android:id="@+id/radio0" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="男" android:checked="true"/> <RadioButton android:id="@+id/radio1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="女"/> </RadioGroup> <Button android:text="提交" android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content"/> </LinearLayout>
效果如图
获取值的方式:
1.在改变单选按钮组的值时获取。
获取单选按钮组,然后为其添加OnCheckedChangeListener,并在其onCheckedChange()方法
中根据参数checkedId获取被选中的单选按钮,并通过getText()方法获取该单选按钮对应的值
package com.example.test; import android.app.Activity; import android.os.Bundle; import android.widget.RadioButton; import android.widget.RadioGroup; import android.widget.RadioGroup.OnCheckedChangeListener; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); RadioGroup sex=(RadioGroup)findViewById(R.id.radioGroup1); sex.setOnCheckedChangeListener(new OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup group, int checkedId) { RadioButton r=(RadioButton)findViewById(checkedId); r.getText();//获取被选中的单选按钮的值 } }); } }
2.单击“提交”按钮(或其他按钮)时获取值
首先要在该按钮的单击事件监听器的onClick()方法中,通过for循环语句遍历当前单选按钮组,并根据被遍历的单选按钮的isChecked方法判断按钮是否被选中,当被选中时,通过单选按钮的getText()方法获取对应的值。
package com.example.test; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.RadioButton; import android.widget.RadioGroup; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); final RadioGroup sex=(RadioGroup)findViewById(R.id.radioGroup1); Button button=(Button)findViewById(R.id.button1); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { for (int i = 0; i < sex.getChildCount(); i++) { RadioButton r=(RadioButton)sex.getChildAt(i); if(r.isChecked()){ r.getText(); break; } } } }); } }
转载请注明出处:http://blog.csdn.net/acmman/article/details/44776547