Android 实现购物车加减功能,效果图如下所示:

public class adderView extends LinearLayout implements View.OnClickListener, TextWatcher {  private int amount = 0; //购买数量  private int goods_storage = Integer.MAX_VALUE; //商品库存  private OnAmountChangeListener mListener;  private EditText etAmount;  private Button btnDecrease;  private Button btnIncrease;  public adderView(Context context) {    this(context, null);  }  public adderView(Context context, AttributeSet attrs) {    super(context, attrs);    LayoutInflater.from(context).inflate(R.layout.number_adder, this);    etAmount = (EditText) findViewById(R.id.etAmount);    btnDecrease = (Button) findViewById(R.id.btnDecrease);    btnIncrease = (Button) findViewById(R.id.btnIncrease);    btnDecrease.setOnClickListener(this);    btnIncrease.setOnClickListener(this);    etAmount.addTextChangedListener(this);    TypedArray obtainStyledAttributes = getContext().obtainStyledAttributes(attrs, R.styleable.AmountView);    int btnWidth = obtainStyledAttributes.getDimensionPixelSize(R.styleable.AmountView_btnWidth, 100);    int tvWidth = obtainStyledAttributes.getDimensionPixelSize(R.styleable.AmountView_tvWidth, 200);    int tvTextSize = obtainStyledAttributes.getDimensionPixelSize(R.styleable.AmountView_tvTextSize, 0);    int btnTextSize = obtainStyledAttributes.getDimensionPixelSize(R.styleable.AmountView_btnTextSize, 0);    obtainStyledAttributes.recycle();    LayoutParams btnParams = new LayoutParams(btnWidth, LayoutParams.MATCH_PARENT);    btnDecrease.setLayoutParams(btnParams);    btnIncrease.setLayoutParams(btnParams);    if (btnTextSize != 0) {      btnDecrease.setTextSize(TypedValue.COMPLEX_UNIT_PX, btnTextSize);      btnIncrease.setTextSize(TypedValue.COMPLEX_UNIT_PX, btnTextSize);    }    LayoutParams textParams = new LayoutParams(tvWidth, LayoutParams.MATCH_PARENT);    etAmount.setLayoutParams(textParams);    if (tvTextSize != 0) {      etAmount.setTextSize(tvTextSize);    }  }  public void setOnAmountChangeListener(OnAmountChangeListener onAmountChangeListener) {    this.mListener = onAmountChangeListener;  }  public void setGoods_storage(int goods_storage) {    this.goods_storage = goods_storage;  }  public void setTextCount(int count){    this.amount = count;    this.etAmount.setText(amount+"");  }  @Override  public void onClick(View v) {    int i = v.getId();    if (i == R.id.btnDecrease) {      if (amount > 0) {        amount--;        etAmount.setText(amount + "");      }    } else if (i == R.id.btnIncrease) {      if (amount < goods_storage) {        amount++;        etAmount.setText(amount + "");      }    }    etAmount.clearFocus();    if (mListener != null) {      mListener.onAmountChange(this, amount);    }  }  @Override  public void beforeTextChanged(CharSequence s, int start, int count, int after) {  }  @Override  public void onTextChanged(CharSequence s, int start, int before, int count) {  }  @Override  public void afterTextChanged(Editable s) {    if (s.toString().isEmpty())      return;    amount = Integer.valueOf(s.toString());    if (amount > goods_storage) {      etAmount.setText(goods_storage + "");      return;    }    if (amount == 0){//      btnDecrease.setBackgroundResource(R.drawable.jian);    }    if (amount > 0){//      btnDecrease.setBackgroundResource(R.drawable.lvjian);    }    if (mListener != null) {      mListener.onAmountChange(this, amount);    }  }  public interface OnAmountChangeListener {    void onAmountChange(View view, int amount);  }
<?xml version="1.0" encoding="utf-8"?>  

到此这篇关于Android 购物车加减功能的实现代码的文章就介绍到这了,更多相关android 购物车加减内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

更多相关文章

  1. android 关于图片的放大,缩小,旋转功能的实现(附源码)
  2. Android实现“退出确认”对话框
  3. 编译android 64位openssl库
  4. Android中RadioGroup RadioButton CheckBox多选按钮实现方法以及
  5. Android几个常用功能代码(校园助手开发笔记)
  6. android MVVM ItemViewSelector 实现列表中不同的view类型
  7. android LayoutInflater.inflate()的参数及其功能
  8. 防止Android点击按钮过快造成多次事件实现原理
  9. 浅谈Java中Collections.sort对List排序的两种方法

随机推荐

  1. Android与js交互实例
  2. Android动态壁纸的制作教程
  3. 【Android布局】在程序中设置android:gra
  4. Android有效解决加载大图片时内存溢出的
  5. Android(安卓)cts all pass 全攻略
  6. 命令行下Android应用开发
  7. Canonical 宣布 Ubuntu for Android(安卓
  8. android中监听来电并生成悬浮窗口提示
  9. Android多点触控
  10. Android(安卓)Studio Mac下载安装使用教