Android官方文档—User Interface(Input Controls)(Radio Buttons)

单选按钮

单选按钮允许用户从一组中选择一个选项。如果您认为用户需要并排查看所有可用选项,则应使用单选按钮的单选按钮。如果没有必要并排显示所有选项,请使用微调器。

要创建每个单选按钮选项,请在布局中创建RadioButton。但是,由于单选按钮是互斥的,因此必须将它们组合在一个RadioGroup中。通过将它们组合在一起,系统确保一次只能选择一个单选按钮。

响应Click事件


当用户选择一个单选按钮时,相应的RadioButton对象接收点击事件。

要为按钮定义click事件处理程序,请将android:onClick属性添加到XML布局中的<RadioButton>元素。此属性的值必须是您要响应click事件时要调用的方法的名称。然后,托管布局的Activity必须实现相应的方法。

例如,这里有几个RadioButton对象:

<?xml version="1.0" encoding="utf-8"?>
<RadioGroup xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">
    <RadioButton android:id="@+id/radio_pirates"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/pirates"
        android:onClick="onRadioButtonClicked"/>
    <RadioButton android:id="@+id/radio_ninjas"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/ninjas"
        android:onClick="onRadioButtonClicked"/>
</RadioGroup>

注意:RadioGroup是LinearLayout的子类,默认情况下具有垂直方向。

在承载此布局的Activity中,以下方法处理两个单选按钮的click事件:

public void onRadioButtonClicked(View view) {
    // Is the button now checked?
    boolean checked = ((RadioButton) view).isChecked();

    // Check which radio button was clicked
    switch(view.getId()) {
        case R.id.radio_pirates:
            if (checked)
                // Pirates are the best
            break;
        case R.id.radio_ninjas:
            if (checked)
                // Ninjas rule
            break;
    }
}

您在android:onClick属性中声明的方法必须具有完全如上所示的签名。具体来说,该方法必须:

  • 公开的
  • 返回viod
  • 将View定义为唯一参数(这将是单击的View)

提示:如果您需要自己更改单选按钮状态(例如加载已保存的CheckBoxPreference时),请使用setChecked(boolean)或toggle()方法。

猜你喜欢

转载自blog.csdn.net/weixin_42703445/article/details/83860679
今日推荐