CheckBoxをタッチすると、Clickイベントが発生して必ずチェックされます。
一瞬でもチェックさせない様にするには、
CheckBoxを継承した派生クラスでperformClickをオーバーライドするしか方法はありません。
public class LimitedCheckBox extends CheckBox { public interface OnLimitCheckEvent { boolean isLimited(); } OnLimitCheckEvent mLimitCheck = null; public void setOnPerformClick(OnLimitCheckEvent onLimit) { mLimitCheck = onLimit; } public LimitedCheckBox(Context context) { super(context); } public LimitedCheckBox(Context context, AttributeSet attrs) { super(context, attrs); } public LimitedCheckBox(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } @Override public boolean performClick() { if ( isChecked() || (mLimitCheck != null && mLimitCheck.isLimited() == false)) { return super.performClick(); } // don't toggle return false; } }