【Android开发】基本组件-单选按钮

来源:互联网 发布:java中的finalize 编辑:程序博客网 时间:2024/04/29 13:33
单选框:
默认情况下,单选框按钮显示为一个圆形图标,并且在该图标旁边放置一些说明性文字。
在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 {  @Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);    RadioGroup sex=(RadioGroup)findViewById(R.id.radioGroup1);sex.setOnCheckedChangeListener(new OnCheckedChangeListener() {@Overridepublic 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 {  @Overrideprotected 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() {@Overridepublic 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

0 0
原创粉丝点击