Checkboxes(复选框)

复选框

复选框允许用户从列表里选择一个或多个选项。通常,你应该在垂直列表中显示每个复选框选项。

在你的布局中通过创建 CheckBox 标签来创建复选框选项。因为用户可以从一组复选框选项里选择多个项目,且每个复选框都是分开管理的,所以你必须为每个复选框注册点击监听器。

响应点击事件


用户选择复选框时,CheckBox 对象会收到on-click事件。

在XML布局文件中的<CheckBox>元素中添加 android:onClick 属性就可以为复选框定义点击事件处理程序了。这个属性的值必须是你调用来响应点击事件的方法名。使用这个布局的 Activity 必须实现相应的方法。

例如,这是个有一对 CheckBox 对象的列表:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <CheckBox android:id="@+id/checkbox_meat"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/meat"
        android:onClick="onCheckboxClicked"/>
    <CheckBox android:id="@+id/checkbox_cheese"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/cheese"
        android:onClick="onCheckboxClicked"/>
</LinearLayout>

在使用这个布局的 Activity 里,下面的方法会为两个复选框处理点击事件:

public void onCheckboxClicked(View view) {
    // 这个视图现在是否已被选中?
    boolean checked = ((CheckBox) view).isChecked();
    
    // 检查哪个复选框被点击过
    switch(view.getId()) {
        case R.id.checkbox_meat:
            if (checked)
                // 在三明治上放点肉
            else
                // 移除肉
            break;
        case R.id.checkbox_cheese:
            if (checked)
                // 加点起司
            else
                // 我有乳糖不耐症
            break;
        // 待办:蔬菜三明治
    }
}

你在 android:onClick 属性中声明的方法名必须和上面显示的一样,而且这个方法必须是:

  • 公共的
  • 返回void
  • 定义一个 View 作为它唯一的参数(它会作为被点击的 View) 

小贴士:如果你需要自己改变复选框状态(比如加载一个保存过的 CheckBoxPreference),那么你可以使用 setChecked(boolean) 或 toggle() 方法达到目的。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值