activity_main.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:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:orientation="vertical"
tools:context="com.example.gby.s01_e10_radio.MainActivity">
<RadioGroup
android:id="@+id/radioGroupId"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<RadioButton
android:id="@+id/femaleButtonId"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="female"
/>
<RadioButton
android:id="@+id/maleButtonId"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="male"
/>
</RadioGroup>
</LinearLayout>
MainActivity.java
//RadioButton单选按钮实现RadioGroup.OnCheckedChangeListener
package com.example.gby.s01_e10_radio;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.CompoundButton;
import android.widget.RadioButton;
import android.widget.RadioGroup;
public class MainActivity extends AppCompatActivity {
private RadioGroup radioGroup;
private RadioButton femaleButton;
private RadioButton maleButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
radioGroup = (RadioGroup)findViewById(R.id.radioGroupId);//找到对象RadioGroup,强转是必须的,这个Group里面包含2个单选按钮
femaleButton = (RadioButton)findViewById(R.id.femaleButtonId);//找到对象femaleButton
maleButton = (RadioButton)findViewById(R.id.maleButtonId);//找到对象maleButton
RadioGroupListener listener = new RadioGroupListener();//实例化监听器
radioGroup.setOnCheckedChangeListener(listener);//给RadioGroup绑定监听器,listener对象就监听了Group
RadioButtonListener radioButtonListener = new RadioButtonListener();
femaleButton.setOnCheckedChangeListener(radioButtonListener);
}
class RadioButtonListener implements CompoundButton.OnCheckedChangeListener{
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) {
System.out.println("isChecked--->"+ isChecked );
}
}
class RadioGroupListener implements RadioGroup.OnCheckedChangeListener{
@Override
public void onCheckedChanged(RadioGroup radioGroup, int checkedId) {
//比较ID来判断是哪个单选按钮被Checked
if (checkedId == femaleButton.getId()){
System.out.println("选中了female");
}
else if (checkedId == maleButton.getId()){
System.out.println("选中了male");
}
}
}
}