RadioGroup管理一组RadioButton,其中的RadioButton只能做出单一选择。
效果如:
先给出整个Activity的布局文件main.xml:
- 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">
- <<>TextView
- android:id="@+id/radiobutton_textview"
- android:layout_width="fill_parent"
- android:layout_height="50dip"
- android:textSize="18dip"
- android:textStyle="bold"
- android:background="@android:drawable/title_bar"
- android:textAppearance="?android:attr/textAppearanceLarge"
- android:gravity="center_vertical"
- />
- <<>RadioGroup
- android:id="@+id/group"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:orientation="vertical">
- <<>RadioButton
- android:id="@+id/button1"
- android:layout_width="fill_parent"
- android:layout_height="50dip"
- android:textSize="20dip"
- android:paddingLeft="30dip"
- android:text="Android新手"
- android:button="@null"
- android:drawableRight="@android:drawable/btn_radio"/>
- <<>View
- android:layout_width="fill_parent"
- android:layout_height="1px"
- android:background="?android:attr/listDivider"
- />
- <<>RadioButton
- android:id="@+id/button2"
- android:layout_width="fill_parent"
- android:layout_height="50dip"
- android:textSize="20dip"
- android:paddingLeft="30dip"
- android:text="Android高手"
- android:button="@null"
- android:drawableRight="@android:drawable/btn_radio"/>
- RadioGroup>
- LinearLayout>
RadioButton 默认按钮在文本的左边,我放到右边,涉及代码:android:button="@null",将左侧的按钮消除;
android:drawableRight="@android:drawable/btn_radio",在文本右侧添加按钮。
MainActivity主要介绍 单选按钮组监听事件:OnCheckedChangeListener
- /**
- * @
- * @author ahutzh
- * @data 2011-4-14
- */
- public class MainActivity extends Activity {
- private TextView textView;
- private RadioGroup group;
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- textView = (TextView) findViewById(R.id.radiobutton_textview);
- group = (RadioGroup) findViewById(R.id.group);
- // 单选按钮组监听事件
- group.setOnCheckedChangeListener(new OnCheckedChangeListener() {
- @Override
- public void onCheckedChanged(RadioGroup group, int checkedId) {
- // 根据ID判断选择的按钮
- if (checkedId == R.id.button1) {
- textView.setText("Android新手");
- } else {
- textView.setText("Android高手");
- }
- }
- });
- }
- }
RadioGroup注册监听事件OnCheckedChangeListener(),在onCheckedChanged实现业务逻辑。