Android 加减

add_and_subtract.xml(布局文件)



    

    

    

AddAndSubtractView 加减 (自定义组合控件)

public class AddAndSubtractView extends LinearLayout {
private View mView;
private TextView add,sub,number;
private OnNumChangedListener onNumChangedListener;
public AddAndSubtractView(Context context) {
    this(context,null);
}

public AddAndSubtractView(Context context,AttributeSet attrs) {
    this(context, attrs,-1);
}

public AddAndSubtractView(Context context,AttributeSet attrs, int defStyleAttr) {
    super(context, attrs, defStyleAttr);
    //添加布局和初始化控件
    initView(context);
    //监听
    initListenter();
}
//加减的监听
private void initListenter() {
    //加
    add.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            //调用加数的方法
            add();
        }
    });
    //减
    sub.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            //调用减数的方法
            sub();
        }
    });
}
//减得方法
private void sub() {
    //控件初始化的时候已经给了  1  获取
    String sub = number.getText().toString();
    //String类型转换成Int类型
    int parseInt = Integer.parseInt(sub);
    //判断
    if (parseInt>1){
        parseInt--;
        setCurentCount(parseInt);
    }else {
        ToastUtil.showToast("不能再少了");
    }
}
//加的方法
private void add() {
    //控件初始化的时候已经给了  1 获取
    String add = number.getText().toString();\
    //String类型转换成Int类型
    int parseInt = Integer.parseInt(add);
    parseInt++;
    setCurentCount(parseInt);
}
//加减的方法都调用它  把加减的值传给接口
public void setCurentCount(int parseInt) {
    //更新 数量
    number.setText(parseInt+"");
    //判断
    if (onNumChangedListener!=null){
        onNumChangedListener.onNumChanged(this,parseInt);
    }
}
public int getCurentCount(){
    return Integer.parseInt(number.getText().toString());
}
//set方法
public void setOnNumChangedListener(OnNumChangedListener onNumChangedListener) {
    this.onNumChangedListener = onNumChangedListener;
}
//初始化控件
private void initView(Context context) {
    //添加组合控件的布局文件
    mView=View.inflate(context,R.layout.add_and_subtract,this);
    //控件初始化
    add=mView.findViewById(R.id.tvAdd);
    sub=mView.findViewById(R.id.tvSub);
    number=mView.findViewById(R.id.tvNumber);
    //初始的时候给1
    number.setText("1");
}
//提供点击的接口
public interface OnNumChangedListener {
    void  onNumChanged(View view,int curNum);
}
}

你可能感兴趣的:(Android 加减)