RadioButton控件的使用方式
RadioButton表示单选按钮,它是Button的子类。每一个单选按钮都有“选中”和“未选中”两种状态,这两种状态是通过android:checked属性指定的。当可选值为ture,表示选中状态,否则,表示未选中状态。
在Android程序中RadioButton通常是和RadioGroup配合使用,实现RadioButton的单选功能。RadioGroup是单选组合框,可以容纳多个RadioButton,但是在RadioGroup中不会出现多个RadioGroup同时选中的情况。
RadioGruop设置xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<RadioGroup
android:id="@+id/rdg"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<RadioButton
android:id="@+id/rbtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="25dp"
android:text="男"/>
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="25dp"
android:text="女"/>
</RadioGroup>
<TextView
android:id="@+id/tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="25dp"/>
</LinearLayout>
上诉代码中,第6~22行代码定义了RadioGroup布局,第10行代码通过设置android:onrientation属性的值为“vertical”,实现RadioGroup布局中的控件竖直排列。
第11~22行代码定义了2个RadioButton控件,这两个没有设置android:check属性的值,默认情况下该属性的值为false,因此界面上两个单选按钮为未选中状态
RadioGruop设置监听事件
代码如下(示例):
package com.example.myapplication;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.RadioGroup;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
private RadioGroup radioGroup;
private TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
radioGroup = (RadioGroup) findViewById(R.id.rdg);
textView = (TextView) findViewById(R.id.tv);
//利用setOnCheckedChangeListener()为RadioGroup设置监听事件
radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener(){
@Override
public void onCheckedChanged(RadioGroup group,int checkedId){
if(checkedId == R.id.rbtn){
textView.setText("您的性别是:男");
}
else{
textView.setText("您的性别是:女");
}
}
});
}
}
上述代码,第16~27行代码通过setOnCheckedChangeListener()方法为RadioGroup设置监听布局内空间状态是否有改变的时间,通过事件返回的onCheckedChanged()方法获取被点击的控件ID,在TextView中显示相应的信息。