自定义checkbox

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();

   }

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容