购物车自定义加减

public class AddSumView extends LinearLayout {

    private Context context;

    private ImageView add;//增加产品数量按钮
    private ImageView reduce;//减少产品数量按钮
    private TextView sum;//展示产品数量

    private int totalSum = 1;//记录商品数量
    private int limitSum = 5;//最多添加几件商品

    //定义点击事件
    private SumClickListener listener;


    /**
     * 绑定点击事件
     *
     * @param listener
     */
    public void setSumClickListener(SumClickListener listener) {
        this.listener = listener;
    }

    public void setSum(int num) {
        totalSum = num;//设置初试数量
        this.sum.setText("" + num);
    }

    /**
     * 设置限购的数量
     *
     * @param limitSum
     */
    public void setLimitSum(int limitSum) {
        if (limitSum > 0) {
            this.limitSum = limitSum;
        } else {
            this.limitSum = 5;
        }
    }

    /**
     * 构造函数
     *
     * @param context
     * @param attrs
     */
    public AddSumView(Context context, AttributeSet attrs) {
        super(context, attrs);
        this.context = context;
        //初始化UI
        initView(context);

    }

    /**
     * 舒适化视图
     *
     * @param context
     */
    private void initView(Context context) {
        View view = View.inflate(context, R.layout.layout_add_sum_view, this);
        add = (ImageView) view.findViewById(R.id.add);
        reduce = (ImageView) view.findViewById(R.id.reduce);
        sum = (TextView) view.findViewById(R.id.txt_sum);

        //添加点击事件
        add.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View view) {
                addClick();
            }
        });

        //减少
        reduce.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View view) {
                reduceClick();
            }
        });
    }

    /**
     * 增加商品数量
     */
    public void addClick() {
        totalSum++;
        if (totalSum >= limitSum) {
            totalSum = limitSum;//TODO
            Toast.makeText(context, "每人限购" + limitSum + "件", Toast.LENGTH_SHORT).show();
        }

        //回调事件
        if (listener != null) {
            listener.sumClick(totalSum);
        }

        sum.setText(totalSum + "");
    }

    /**
     * 减少商品数量
     */
    public void reduceClick() {
        totalSum--;
        if (totalSum > 0) {
            sum.setText(totalSum + "");
        } else {
            totalSum = 1;//TODO
            Toast.makeText(context, "不能再减少了", Toast.LENGTH_SHORT).show();
            sum.setText(totalSum + "");
        }

        //回调事件
        if (listener != null) {
            listener.sumClick(totalSum);
        }
    }

    /**
     * 回调商品数量点击事件
     */
    public interface SumClickListener {
        void sumClick(int psum);
    }


}

猜你喜欢

转载自blog.csdn.net/qq_41880248/article/details/81986163
今日推荐