布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="80dp"
android:layout_height="30dp"
android:layout_gravity="center_vertical"
android:background="#000"
android:orientation="horizontal"
android:padding="2dp">
<TextView
android:id="@+id/tv_sub_view"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="#fff"
android:gravity="center"
android:text="-"
android:textColor="#000" />
<TextView
android:id="@+id/tv_number_view"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_marginLeft="2dp"
android:layout_marginRight="2dp"
android:layout_weight="1"
android:background="#fff"
android:gravity="center"
android:text="1"
android:textColor="#000" />
<TextView
android:id="@+id/tv_add_view"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="#fff"
android:gravity="center"
android:text="+"
android:textColor="#000" />
</LinearLayout>
自定义代码(带有加减对值得处理 并带有回调借口(哟偶自己的思路随意更改
package com.bwei.gouwuchemoni;
import android.content.Context;
import android.support.annotation.Nullable;
import android.util.AttributeSet;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
/**
* Created by Jack Lee on 2018/8/23.
* name:Juck Lee
*/
public class MyAddSubView extends LinearLayout implements View.OnClickListener {
TextView tv_sub_view;
TextView tv_number_view;
TextView tv_add_view;
private int number=1;
public int getNumber() {
return number;
}
public void setNumber(int number) {
this.number = number;
tv_number_view.setText(number+"");
}
public MyAddSubView(Context context) {
super(context, null);
}
public MyAddSubView(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
View inflate = View.inflate(context, R.layout.add_sub_view, this);
tv_sub_view = inflate.findViewById(R.id.tv_sub_view);
tv_number_view = inflate.findViewById(R.id.tv_number_view);
tv_add_view = inflate.findViewById(R.id.tv_add_view);
tv_add_view.setOnClickListener(this);
tv_sub_view.setOnClickListener(this);
}
OnNumberChangeListener onNumberChangeListener;
public void setOnNumberChangeListener(OnNumberChangeListener onNumberChangeListener) {
this.onNumberChangeListener = onNumberChangeListener;
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.tv_sub_view:
if (number>1){
--number;
tv_number_view.setText(number+"");
if (onNumberChangeListener!=null){
onNumberChangeListener.OnNumberChange(number);
}
}else{
Toast.makeText(getContext(), "不能再少啦!", Toast.LENGTH_SHORT).show();
}
break;
case R.id.tv_add_view:
++number;
tv_number_view.setText(number + "");
if (onNumberChangeListener != null) {
onNumberChangeListener.OnNumberChange(number);
}
break;
}
}
public interface OnNumberChangeListener {
void OnNumberChange(int number);
}
}
))