一个简单的购物车加减按钮,自定义控件实现,非常简单,有兴趣的可以自己尝试一下
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>
效果如图所示