public class MyAddSubView extends LinearLayout implements View.OnClickListener {
private final TextView sub_tv;
private final TextView number_tv;
private final TextView add_tv;
private int number = 1;
public MyAddSubView(Context context) {
this(context,null);
}
public MyAddSubView(Context context, @Nullable AttributeSet attrs) {
this(context, attrs,0);
}
public MyAddSubView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
View view = inflate(context, R.layout.add_remove_view_layout, this);
sub_tv = view.findViewById(R.id.sub_tv);
number_tv = view.findViewById(R.id.product_number_tv);
add_tv = view.findViewById(R.id.add_tv);
sub_tv.setOnClickListener(this);
add_tv.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.add_tv:
number++;
number_tv.setText(number + "");
if (mOnNumberChangeListener != null) {
mOnNumberChangeListener.onNumberChange(number);
}
break;
case R.id.sub_tv:
if (number>1) {
number--;
number_tv.setText(number+"");
}else {
Toast.makeText(getContext(), "不能再少了", Toast.LENGTH_SHORT).show();
}
break;
}
}
public int getNumBer(){
return number;
}
public void setNumber(int number){
this.number = number;
number_tv.setText(number+" ");
}
/接口//
public interface OnNumberChangeListener{
void onNumberChange(int num);
}
OnNumberChangeListener mOnNumberChangeListener;
public void setOnNumberChangeListener(OnNumberChangeListener onNumberChangeListener){
mOnNumberChangeListener =onNumberChangeListener;
}
}
//布局
<TextView
android:background="#ffffff"
android:layout_weight="1"
android:id="@+id/sub_tv"
android:layout_width="0dp"
android:layout_height="match_parent"
android:gravity="center"
android:text="-"
android:textSize="16sp" />
<TextView
android:text="1"
android:layout_marginLeft="2dp"
android:background="#ffffff"
android:layout_weight="1"
android:id="@+id/product_number_tv"
android:layout_width="0dp"
android:layout_height="match_parent"
android:gravity="center"
/>
<TextView
android:layout_marginLeft="2dp"
android:background="#ffffff"
android:layout_weight="1"
android:id="@+id/add_tv"
android:layout_width="0dp"
android:layout_height="match_parent"
android:gravity="center"
android:text="+"
android:textSize="16sp" />