/** * Changes the checked state of this button. * * @param checked true to check the button, false to uncheck it */ public void setChecked(boolean checked) { if (mChecked != checked) { mChecked = checked; mBtnPos = checked ? mBtnOnPos : mBtnOffPos; mRealPos = getRealPos(mBtnPos); invalidate(); // Avoid infinite recursions if setChecked() is called from a // listener if (mBroadcasting) { return; } mBroadcasting = true; if (mOnCheckedChangeListener != null) { mOnCheckedChangeListener.onCheckedChanged(SwitchButton.this, mChecked); } if (mOnCheckedChangeWidgetListener != null) { mOnCheckedChangeWidgetListener.onCheckedChanged(SwitchButton.this, mChecked); } mBroadcasting = false; } }
public void setChecked(boolean checked) { if (mChecked != checked) { mChecked = checked; // 初始化按钮位置 curBtnPos = checked ? onBtnPos : offBtnPos; // 改变背景图片 bmCurBgPic = checked ? bmBgGreen : bmBgWhite; invalidate(); if (mBroadcasting) { // NO-OP return; } // 正在执行监听事件 mBroadcasting = true; if (mOnCheckedChangeListener != null) { mOnCheckedChangeListener.onCheckedChanged(UISwitchButton.this, mChecked); } if (mOnCheckedChangeWidgetListener != null) { mOnCheckedChangeWidgetListener.onCheckedChanged(UISwitchButton.this, mChecked); } // 监听事件结束 mBroadcasting = false; } }
@TargetApi(Build.VERSION_CODES.KITKAT) @Override public void setChecked(boolean checked) { if (mChecked != checked) { mChecked = checked; refreshDrawableState(); if ((Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT && isAttachedToWindow() && isLaidOut()) || (mIsAttachWindow && mOval != null)) { // To Animator animateCheckedState(checked); } else { setAnimatorValue(checked); } // Avoid infinite recursions if setChecked() is called from a listener if (mBroadcasting) { return; } mBroadcasting = true; if (mOnCheckedChangeListener != null) { mOnCheckedChangeListener.onCheckedChanged(this, checked); } mBroadcasting = false; } }
@Override public void setChecked(boolean checked) { super.setChecked(checked); if (mOnCheckedChangeListener != null) { mOnCheckedChangeListener.onCheckedChanged(this, checked, mFromUser); } }
/** * Change the checked state of this Switch immediately without showing animation. * * @param checked The checked state. */ public void setCheckedImmediately(boolean checked) { if (mChecked != checked) { mChecked = checked; if (mOnCheckedChangeListener != null) mOnCheckedChangeListener.onCheckedChanged(this, mChecked); } mThumbPosition = mChecked ? 1f : 0f; invalidate(); }
@Override public void setChecked(boolean checked) { mChecked = checked; reset(); invalidate(); if (mListener != null) { mListener.onCheckedChanged(SmoothCheckBox.this, mChecked); } }
@Override public void setChecked(boolean checked) { if (mChecked != checked) { mChecked = checked; if (mOnCheckedChangeListener != null) mOnCheckedChangeListener.onCheckedChanged(this, mChecked); } float desPos = mChecked ? 1f : 0f; if (mThumbPosition != desPos) startAnimation(); }
@Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { int idx = (int) buttonView.getTag(); if (isChecked) { if (mMinCheckedIdx == -1 || idx < mMinCheckedIdx) { // if (mMaxCheckedIdx == -1) { mMaxCheckedIdx = mMinCheckedIdx; } mMinCheckedIdx = idx; } else if (idx > mMaxCheckedIdx) { mMaxCheckedIdx = idx; } } else { // Recalculate min max mMinCheckedIdx = -1; mMaxCheckedIdx = -1; } SparseBooleanArray states = new SparseBooleanArray(CHECKBOX_COUNT); for (int i = 0; i < CHECKBOX_COUNT; i++) { CheckBox view = (CheckBox) getChildAt(i); boolean checked = view.isChecked(); // Select in range if (isChecked) { if (!checked && i > mMinCheckedIdx && i < mMaxCheckedIdx) { checked = true; setCheckedSilently(view, true); } } else { if (checked) { if (mMinCheckedIdx == -1) { mMinCheckedIdx = i; } else { mMaxCheckedIdx = i; } } } if (checked) { int value = i + 1; states.put(value, true); } } if (mListener != null) { mListener.onCheckedChanged(this, states); } }
/** * checked with animation * * @param checked checked * @param animate change with animation */ public void setChecked(boolean checked, boolean animate) { if (animate) { mTickDrawing = false; mChecked = checked; mDrewDistance = 0f; if (checked) { startCheckedAnimation(); } else { startUnCheckedAnimation(); } if (mListener != null) { mListener.onCheckedChanged(SmoothCheckBox.this, mChecked); } } else { this.setChecked(checked); } }