一个简单的购物车加减按钮

来源:互联网 发布:股票自动止损 知乎 编辑:程序博客网 时间:2024/05/01 10:58

一个简单的购物车加减按钮,自定义控件实现,非常简单,有兴趣的可以自己尝试一下

import android.content.Context;import android.util.AttributeSet;import android.view.View;import android.widget.ImageView;import android.widget.RelativeLayout;import android.widget.TextView;import com.shizhibang.jdcom.R;public class NumberButton extends RelativeLayout implements View.OnClickListener {    private ImageView jia;    private ImageView jian;    private TextView num;    public NumberButton(Context context) {        this(context,null);    }    public NumberButton(Context context, AttributeSet attrs) {        this(context, attrs, 0);    }    public NumberButton(Context context, AttributeSet attrs, int defStyleAttr) {        super(context, attrs, defStyleAttr);        init(context, attrs);    }    private void init(Context context, AttributeSet attrs) {        View view = View.inflate(context, R.layout.num, null);        addView(view);        jia = view.findViewById(R.id.jia);        jian = view.findViewById(R.id.jian);        num = view.findViewById(R.id.num);    }    private int sum=0;    public NumberButton setCurrentNumber(int sum) {        this.sum = sum;        num.setText(sum+"");        return this;    }    private int MinNumber=0;    private int MaxNumber=0;    public NumberButton setMinNumber(int minNumber) {        MinNumber = minNumber;        return this;    }    public NumberButton setMaxNumber(int maxNumber) {        MaxNumber = maxNumber;        return this;    }    public interface OnNumberChangeListener    {        void OnNumberChangeListener(int sum);    }    private OnNumberChangeListener onClickListener;    public void setOnNumberChangeListener(OnNumberChangeListener onClickListener) {        this.onClickListener = onClickListener;        jia.setOnClickListener(this);        jian.setOnClickListener(this);    }    @Override    public void onClick(View view) {        switch (view.getId()){            case R.id.jia:                if (sum>=MaxNumber)                    return;                sum++;                break;            case R.id.jian:                if (sum<=MinNumber)                    return;                sum--;                break;        }        num.setText(sum+"");        onClickListener.OnNumberChangeListener(sum);    }}下面是控件的布局里面的加减号可以自行定义
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:gravity="center"    android:orientation="horizontal"    android:layout_height="wrap_content">    <ImageView        android:id="@+id/jian"    android:layout_width="@dimen/x20"    android:layout_height="@dimen/x20"    android:src="@mipmap/jian"/>    <TextView        android:id="@+id/num"        android:layout_width="@dimen/x20"        android:layout_height="match_parent"        android:background="@drawable/tvbg"        android:gravity="center"        android:text="0"        android:textSize="20sp" />    <ImageView        android:id="@+id/jia"        android:layout_width="@dimen/x20"        android:layout_height="@dimen/x20"        android:src="@mipmap/jia"/></LinearLayout>

 效果如图所示