Android 购物车 自定义加减器
来源:互联网 发布:全国软件人才证书 编辑:程序博客网 时间:2024/06/06 19:19
//*** 自定义加减器 **//import android.content.Context;import android.content.res.TypedArray;import android.support.annotation.Nullable;import android.text.Editable;import android.text.TextWatcher;import android.util.AttributeSet;import android.util.TypedValue;import android.view.LayoutInflater;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.LinearLayout;/** * Created by DANGEROUS_HUI on 2017/10/18. */public class AmmountView extends LinearLayout implements View.OnClickListener,TextWatcher{ private static final String TAG = "AmountView"; private int amount = 1; //购买数量 private int goods_storage = 1; //商品库存 private OnAmountChangeListener mListener; private EditText etAmount; private Button btnDecrease; private Button btnIncrease; public AmmountView(Context context) { this(context, null); } public AmmountView(Context context, @Nullable AttributeSet attrs) { super(context, attrs); LayoutInflater.from(context).inflate(R.layout.view_amount, 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, LayoutParams.WRAP_CONTENT); int tvWidth = obtainStyledAttributes.getDimensionPixelSize(R.styleable.AmountView_tvWidth, 80); 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 setAmount(int amount) { this.amount = amount; etAmount.setText(amount + ""); } @Override public void onClick(View v) { int i = v.getId(); if (i == R.id.btnDecrease) { if (amount > 1) { 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 charSequence, int i, int i1, int i2) { } @Override public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) { } @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 (mListener != null) { mListener.onAmountChange(this, amount); } } public interface OnAmountChangeListener { void onAmountChange(View view, int amount); }}
//**初始化控件***/holder.amount_view.setGoods_storage(50); holder.amount_view.setAmount(Integer.parseInt(list.get(pos).num)); holder.amount_view.setOnAmountChangeListener(new AmmountView.OnAmountChangeListener() { @Override public void onAmountChange(View view, int amount) { Toast.makeText(context,""+amount,Toast.LENGTH_SHORT).show(); } });
阅读全文
0 0
- Android 购物车 自定义加减器
- 购物车 自定义加减器
- Android自定义控件之购物车数量加减器
- 初学者---Android 自定义控件之购物车数量加减器
- Android自定义购物车加减按钮
- 购物车逻辑+自定义加减器
- 购物车自定义加减按钮
- 购物车自定义加减控件
- Android实现购物车加减器控件
- android 购物车加减器功能代码
- Android——自定义View之购物车的加减
- Android使用自定义View实现购物车的加减
- android购物车数量加减
- 自定义控件之购物车数量加减
- 简易实现自定义购物加减器
- Android 实现购物车加减器的实现
- Android----------实现简单的购物车加减器
- android购物车简单实现全选+加减器+总价格
- org.apache.http.ProtocolException: Target host is not specified
- 四种古典密码的C++实现(3)-----Playfair密码
- CELABUJU
- 基金定投理论指导
- 1-2 输出N个数的平方和立方值
- Android 购物车 自定义加减器
- Python基础:列表
- 国际短信接口文档-json
- 移动端开发(二):rem单位的计算问题
- 四种古典密码的C++实现(4)-----Caesar密码
- 安卓自定义View之画图
- [i.MX6Q][QNX Neutrino 6.6.0]调试笔记------Buildfile
- Android Studio cannot launch avd in emulator问题解决
- STL空间配置器的剖析