public class custom extends RelativeLayout implements View.OnClickListener { List<CarBean.DataBean.ListBean> list; GoodsAdapter goodsAdapter; private Button remove; private Button add; private TextView textview; private Integer num; Context context; private int postion; public custom(Context context) { super(context); intit(context); } public custom(Context context, AttributeSet attrs) { super(context, attrs); intit(context); } public custom(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); intit(context); } public custom(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { super(context, attrs, defStyleAttr, defStyleRes); intit(context); } private void intit(Context context) { View inflate = View.inflate(context, R.layout.add_bar, null); add = inflate.findViewById(R.id.add); remove = inflate.findViewById(R.id.remove); textview = inflate.findViewById(R.id.textview); add.setOnClickListener(this); remove.setOnClickListener(this); addView(inflate); textview.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) { } @Override public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) { num = Integer.parseInt(charSequence.toString()); } @Override public void afterTextChanged(Editable editable) { } }); } public void setdata(GoodsAdapter goodsAdapter,List<CarBean.DataBean.ListBean> list,int i){ this.goodsAdapter=goodsAdapter; this.list=list; postion=i; textview.setText(list.get(postion).getNum()); } @Override public void onClick(View view) { switch (view.getId()){ case R.id.add: num++; textview.setText(""+num); list.get(postion).setNum(String.valueOf(num)); cusCallBack.oncall(); goodsAdapter.notifyItemChanged(postion); break; case R.id.remove: if (num<1){ Toast.makeText(context,"地了",Toast.LENGTH_SHORT).show(); }else { num--; textview.setText(""+num); list.get(postion).setNum(String.valueOf(num)); cusCallBack.oncall(); goodsAdapter.notifyItemChanged(postion); } break; } } cusCallBack cusCallBack; public void setcustom (cusCallBack cusCallBack){ this.cusCallBack=cusCallBack; } public interface cusCallBack{ void oncall(); } }
//布局
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <Button android:background="@drawable/jia" android:id="@+id/add" android:layout_width="40dp" android:layout_height="40dp" android:layout_alignParentStart="true" android:layout_alignParentTop="true" /> <EditText android:id="@+id/textview" android:layout_width="50dp" android:layout_height="50dp" android:layout_alignParentStart="true" android:layout_alignParentTop="true" android:layout_marginStart="51dp" android:gravity="center" android:text="0" android:textSize="15dp" /> <Button android:id="@+id/remove" android:layout_width="40dp" android:layout_height="40dp" android:layout_alignParentStart="true" android:layout_alignParentTop="true" android:layout_marginStart="105dp" android:layout_marginTop="4dp" android:background="@drawable/jian" /> </RelativeLayout>