Checkboxes(复选框)

来源:互联网 发布:大数据征信查询入口app 编辑:程序博客网 时间:2024/04/30 08:09

复选框

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

在你的布局中通过创建 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
原创粉丝点击