本文共 2080 字,大约阅读时间需要 6 分钟。
checkboxes提供一个让用户可以选择一个或者多个设定,你可以在layout文件中添加一个或多个checkbox,每一个checkbox都是独立管理的。可以为每一个checkbox注册一个listerner 如下所示checkbox的回调函数都是android:onClick="onCheckboxClicked" <?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中可以通过view.getID()来得到checkbox的id,可以通过view.ischeck()来判定这个checkbox是否选中 public void onCheckboxClicked(View view) { // Is the view now checked? boolean checked = ((CheckBox) view).isChecked(); // Check which checkbox was clicked switch(view.getId()) { case R.id.checkbox_meat: if (checked) // Put some meat on the sandwich else // Remove the meat break; case R.id.checkbox_cheese: if (checked) // Cheese me else // I'm lactose intolerant break; // TODO: Veggie sandwich } }你也可以通过setchecked(boolean)或者toggle()来选中或者改变checkbox的状态.
checkBox 是CompoundButton.java子类。这两个方法的实现分别如下:
这三个方法都是父类实现的.
直接返回mChecked @ViewDebug.ExportedProperty public boolean isChecked() { return mChecked; } public void setChecked(boolean checked) { if (mChecked != checked) { mChecked = checked; refreshDrawableState(); notifyViewAccessibilityStateChangedIfNeeded( AccessibilityEvent.CONTENT_CHANGE_TYPE_UNDEFINED); // Avoid infinite recursions if setChecked() is called from a listener if (mBroadcasting) { return; } mBroadcasting = true; if (mOnCheckedChangeListener != null) { mOnCheckedChangeListener.onCheckedChanged(this, mChecked); } if (mOnCheckedChangeWidgetListener != null) { mOnCheckedChangeWidgetListener.onCheckedChanged(this, mChecked); } mBroadcasting = false; } } toggle仅仅是把状态反一下而已. public void toggle() { setChecked(!mChecked); }转载地址:http://lvcmi.baihongyu.com/