package com.example.zidingyizuheview; import android.content.Context; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.text.TextUtils; import android.util.AttributeSet; import android.view.View; import android.widget.FrameLayout; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; import android.widget.Toast; /** * Created by DELL on 2018/5/15. */ public class MyView extends LinearLayout implements View.OnClickListener { private ImageView img_add; private ImageView img_sub; private TextView tv; private Integer value; //定义一个变量规范商品数量的最大值 private int max = 20; //定义一个方法方便更改调用 public void setMaxValue(int maxValue){ max = maxValue; } public MyView(@NonNull Context context) { this(context,null); } public MyView(@NonNull Context context, @Nullable AttributeSet attrs) { this(context, attrs,0); } public MyView(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); init(context); } //初始化 private void init(Context context) { View view = View.inflate(context, R.layout.my_add_view,this); img_add = view.findViewById(R.id.img_add); img_sub = view.findViewById(R.id.img_sub); tv = view.findViewById(R.id.tv); img_add.setOnClickListener(this); img_sub.setOnClickListener(this); //获取值 getValue(); } private int getValue() { String s = tv.getText().toString().trim(); if(!TextUtils.isEmpty(s)){ value = Integer.valueOf(s); } return value; } @Override public void onClick(View view) { switch (view.getId()){ case R.id.img_add: setAdd(); break; case R.id.img_sub: setSub(); break; } } private void setSub() { if(value > 0){ value--; tv.setText(value+""); } if(mOnNumberChangerListener != null){ mOnNumberChangerListener.OnNumberChanger(value); } } private void setAdd() { if(value < max){ value++; tv.setText(value+""); } if(mOnNumberChangerListener != null){ mOnNumberChangerListener.OnNumberChanger(value); } } //定义一个接口 public interface OnNumberChangerListener{ //定义一个回调方法 void OnNumberChanger(int value); } //定义接口对象 private OnNumberChangerListener mOnNumberChangerListener; public void setOnNumberChangerListener(OnNumberChangerListener onNumberChangerListener){ mOnNumberChangerListener = onNumberChangerListener; } }
组合式自定义控件实现加减操作
猜你喜欢
转载自blog.csdn.net/gaoyiranblog/article/details/80342233
今日推荐
周排行