add_and_subtract.xml(布局文件)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/an droid"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:background="#a9a7a7">
<TextView
android:id="@+id/tvSub"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="10dp"
android:text="--"
android:textColor="@color/colorAccent"
android:textSize="14sp" />
<TextView
android:id="@+id/tvNumber"
android:layout_width="80dp"
android:layout_height="wrap_content"
android:gravity="center"
android:padding="10dp"
android:textColor="@color/colorAccent"
android:textSize="14sp" />
<TextView
android:id="@+id/tvAdd"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="10dp"
android:text="+"
android:textColor="@color/colorAccent"
android:textSize="14sp" />
</LinearLayout>
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);
}
}
网友评论