当前位置: 移动技术网 > 移动技术>移动开发>Android > Android 购物车加减功能的实现代码

Android 购物车加减功能的实现代码

2020年06月23日  | 移动技术网移动技术  | 我要评论

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"?>
<com.zhy.autolayout.autolinearlayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="match_parent"
 android:layout_height="90px"
 android:focusable="true"
 android:divider="@drawable/divder"
 android:background="@drawable/bg_amout_layout"
 android:showdividers="middle"
 android:orientation="horizontal">
 <button
  android:id="@+id/btndecrease"
  android:layout_width="0dp"
  android:layout_height="wrap_content"
  android:layout_weight="1"
  android:gravity="center"
  android:background="@drawable/jian"/>
 <edittext
  android:id="@+id/etamount"
  android:layout_width="200px"
  android:layout_height="match_parent"
  android:minwidth="150px"
  android:layout_weight="2"
  android:background="@null"
  android:inputtype="number"
  android:textsize="13sp"
  android:text="0"
  android:gravity="center"/>
 <button
  android:id="@+id/btnincrease"
  android:layout_width="0dp"
  android:layout_height="wrap_content"
  android:layout_weight="1"
  android:gravity="center"
  android:background="@drawable/jia"/>
</com.zhy.autolayout.autolinearlayout>

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

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网