|
|
package com.rehome.sbcksyy.weiget;
|
|
|
|
|
|
/**
|
|
|
* Create By HuangWenFei
|
|
|
* 创建日期:2022-12-09 15:15
|
|
|
* 描述:
|
|
|
*/
|
|
|
|
|
|
import android.content.Context;
|
|
|
import android.content.res.TypedArray;
|
|
|
import androidx.annotation.Nullable;
|
|
|
import android.util.AttributeSet;
|
|
|
import android.view.View;
|
|
|
import android.widget.ImageButton;
|
|
|
import android.widget.LinearLayout;
|
|
|
import android.widget.TextView;
|
|
|
|
|
|
import com.rehome.sbcksyy.R;
|
|
|
|
|
|
/**
|
|
|
* 可以加减的控件
|
|
|
*/
|
|
|
public class NumAddSubView extends LinearLayout {
|
|
|
|
|
|
ImageButton ibtnSub;
|
|
|
TextView tvNum;
|
|
|
ImageButton ibtnAdd;
|
|
|
private View view;
|
|
|
|
|
|
private int maxNum = 100;
|
|
|
private int minNum = 1;
|
|
|
|
|
|
public NumAddSubView(Context context) {
|
|
|
super(context, null);
|
|
|
initView();
|
|
|
}
|
|
|
|
|
|
public NumAddSubView(Context context, @Nullable AttributeSet attrs) {
|
|
|
super(context, attrs);
|
|
|
initView();
|
|
|
|
|
|
if (attrs != null) {
|
|
|
TypedArray type = context.obtainStyledAttributes(attrs, R.styleable.NumAddSubView);
|
|
|
maxNum = type.getInt(R.styleable.NumAddSubView_maxNum, 100);
|
|
|
minNum = type.getInt(R.styleable.NumAddSubView_minNum, 1);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public NumAddSubView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
|
|
|
super(context, attrs, defStyleAttr);
|
|
|
initView();
|
|
|
}
|
|
|
|
|
|
private void initView() {
|
|
|
|
|
|
if (view == null) {
|
|
|
view = View.inflate(getContext(), R.layout.num_add_sub_layout, this);
|
|
|
ibtnSub = view.findViewById(R.id.ibtn_sub);
|
|
|
tvNum = view.findViewById(R.id.tv_num);
|
|
|
ibtnAdd = view.findViewById(R.id.ibtn_add);
|
|
|
|
|
|
ibtnAdd.setOnClickListener(new OnClickListener() {
|
|
|
@Override
|
|
|
public void onClick(View v) {
|
|
|
int nowMax = getNum(tvNum) + 1;
|
|
|
if (nowMax <= maxNum) {
|
|
|
tvNum.setText(nowMax + "");
|
|
|
if (listener != null) {
|
|
|
listener.numChange(tvNum.getText().toString());
|
|
|
}
|
|
|
}
|
|
|
|
|
|
}
|
|
|
});
|
|
|
ibtnSub.setOnClickListener(new OnClickListener() {
|
|
|
@Override
|
|
|
public void onClick(View v) {
|
|
|
int nowMin = getNum(tvNum) - 1;
|
|
|
if (nowMin >= minNum) {
|
|
|
tvNum.setText(nowMin + "");
|
|
|
if (listener != null) {
|
|
|
listener.numChange(tvNum.getText().toString());
|
|
|
}
|
|
|
}
|
|
|
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
|
|
|
tvNum.setText("1");
|
|
|
}
|
|
|
|
|
|
public void setMaxNum(int maxNum) {
|
|
|
this.maxNum = maxNum;
|
|
|
}
|
|
|
|
|
|
public void setMinNum(int minNum) {
|
|
|
this.minNum = minNum;
|
|
|
}
|
|
|
|
|
|
public void setNum(String num) {
|
|
|
tvNum.setText(num);
|
|
|
}
|
|
|
|
|
|
public int getNum(TextView num) {
|
|
|
return Integer.parseInt(num.getText().toString());
|
|
|
}
|
|
|
|
|
|
public String getNum() {
|
|
|
return tvNum.getText().toString();
|
|
|
}
|
|
|
|
|
|
private NumChangeListener listener;
|
|
|
|
|
|
public void setListener(NumChangeListener listener) {
|
|
|
this.listener = listener;
|
|
|
}
|
|
|
|
|
|
public interface NumChangeListener {
|
|
|
void numChange(String num);
|
|
|
}
|
|
|
}
|