美文网首页
自定义checkbox

自定义checkbox

作者: 天之大任 | 来源:发表于2016-03-20 17:09 被阅读34次

public class LikeView extends CheckBox implements CompoundButton.OnCheckedChangeListener {

   private int likeCount;

   private OnLikeChangedListener onLikeChangedListener;

   public LikeView(Context context, AttributeSet attrs) {

       super(context, attrs);

       init();

   }

   private void init() {

       setGravity(Gravity.CENTER_VERTICAL);

       refresh(isChecked());

       String text = getText().toString().trim();

       if (TextUtils.isEmpty(text)) {

           likeCount = 0;

       } else {

           likeCount = Integer.parseInt(text);

       }

       setText(likeCount + "");

       setOnCheckedChangeListener(this);

   }

   private void refresh(boolean checked) {

       String text = getText().toString().trim();

       if (TextUtils.isEmpty(text)) {

           likeCount = 0;

       } else {

           likeCount = Integer.parseInt(text);

       }

       if (checked) {

           setCompoundDrawablesWithIntrinsicBounds(getResources().getDrawable(R.drawable.ic_liked), null, null, null);

           likeCount++;

           setText(likeCount + "");

       } else {

           setCompoundDrawablesWithIntrinsicBounds(getResources().getDrawable(R.drawable.ic_like), null, null, null);

           if (likeCount > 0) {

               likeCount--;

           }

           setText(likeCount + "");

       }

   }

   public void addOnLikeChangeListener(OnLikeChangedListener onLikeChangedListener) {

       this.onLikeChangedListener = onLikeChangedListener;

   }

   public int getLikeCount(){

       return likeCount;

   }

   @Override

   public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

       refresh(isChecked);

       if (onLikeChangedListener != null) {

           onLikeChangedListener.onLikeChanged();

       }

   }

   public interface OnLikeChangedListener {

       void onLikeChanged();

   }

}

相关文章

网友评论

      本文标题:自定义checkbox

      本文链接:https://www.haomeiwen.com/subject/rlqklttx.html