热门标签 | HotTags
当前位置:  开发笔记 > 开发工具 > 正文

Android自定义商品购买数量加减控件

这篇文章主要为大家详细介绍了Android自定义商品购买数量加减控件的相关代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

在购买商品时,大家可以自定义数字加减控件,来确定购买商品的实际数量,如何实现此控件,请参考下文:

1.自定义数字加减控件的要求

创建Module -NumberAddSubView

A_输入的只能是数字,而且不能通过键盘输入

B_通过加减按钮操作数字

C_监听加减按钮

D_数组有最小值和最大值的限制

E_自定义属性 

2.提供接口,让外界监听到数字的变化

1_设置接口

@Override
public void onClick(View v) {
 if (v.getId() == R.id.btn_sub) {
    //Toast.makeText(mContext,"减",Toast.LENGTH_SHORT).show();
  subNum();
  if (onButtonClickListenter != null) {
   onButtonClickListenter.onButtonSubClick(v, value);
  }
 } else if (v.getId() == R.id.btn_add) {
    //Toast.makeText(mContext,"加",Toast.LENGTH_SHORT).show();
  addNum();
  if (onButtonClickListenter != null) {
   onButtonClickListenter.onButtonAddClick(v, value);
  }
 }
}
 
public interface OnButtonClickListenter {
 /**
  * 当增加按钮被点击的时候回调该方法
  *
  * @param view
  * @param value
  */
 public void onButtonAddClick(View view, int value);
 
 /**
  * 当减少按钮被点击的时候回调这个方法
  *
  * @param view
  * @param value
  */
 public void onButtonSubClick(View view, int value);
}
 
private OnButtonClickListenter onButtonClickListenter;
 
public void setOnButtonClickListenter(OnButtonClickListenter onButtonClickListenter) {
 this.OnButtonClickListenter= onButtonClickListenter;
}

2_监听变化

public class MainActivity extends AppCompatActivity {
 
 private NumberAddSubView nb_addsub_view;
 
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  nb_addsub_view = (NumberAddSubView) findViewById(R.id.nb_addsub_view);
 
  nb_addsub_view.setOnButtonClickListenter(new NumberAddSubView.OnButtonClickListenter() {
   @Override
   public void onButtonAddClick(View view, int value) {
    Toast.makeText(MainActivity.this,"AddClick Vaule=="+value,Toast.LENGTH_SHORT).show();
   }
 
   @Override
   public void onButtonSubClick(View view, int value) {
    Toast.makeText(MainActivity.this,"SubClick Vaule=="+value,Toast.LENGTH_SHORT).show();
   }
  });
 }
}

github完整代码: https://github.com/ganchuanpu/NumberAddSubView

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


推荐阅读
  • 在Win10上利用VS2015构建Caffe2环境
    本文详细介绍如何在Windows 10操作系统上通过Visual Studio 2015编译Caffe2深度学习框架的过程。包括必要的软件安装、环境配置以及常见问题的解决方法。 ... [详细]
  • 随着EOS主网的成功启动,众多开发者和投资者对其给予了高度关注。本文旨在介绍如何构建EOS开发环境,包括所需的基本硬件配置、软件安装步骤以及常见问题的解决方案。 ... [详细]
  • 本文介绍并分享了三个个人开源项目,涵盖单元测试中HttpContext的可测试性增强、Visual Studio插件开发以及单元测试报告自动生成工具。 ... [详细]
  • 本文详细介绍了在使用 GitHub 进行代码推送时遇到 'failed to push some refs' 错误的解决方案,包括具体原因分析和操作步骤。 ... [详细]
  • 使用Jenkins构建Java项目实践指南
    本指南详细介绍了如何使用Jenkins构建Java项目,包括环境搭建、工具配置以及项目构建的具体步骤。 ... [详细]
  • Vue 项目构建与部署指南
    本文将指导您完成Vue项目的构建和部署过程,包括环境搭建、项目初始化及配置、以及最终的部署步骤。 ... [详细]
  • 本文详细介绍了如何在Linux系统中安装和配置GitLab Runner,包括添加YUM源、安装GitLab Runner以及注册Runner的具体步骤。 ... [详细]
  • 百度云加速节点IP白名单配置指南:宝塔面板Nginx防火墙应用
    百度云加速为已备案的网站提供免费加速服务,但使用宝塔面板自带Nginx防火墙的用户需将百度云加速的CDN IP段加入白名单以确保正常访问。本文将详细介绍如何操作。 ... [详细]
  • 本文将详细介绍NSRunLoop的工作原理,包括其基本概念、消息类型(事件源)、运行模式、生命周期管理以及嵌套运行等关键知识点,帮助开发者更好地理解和应用这一重要技术。 ... [详细]
  • 本文详细介绍了如何在两台运行 Windows Server 2003 的计算机上配置两个 MySQL 实例以实现主从复制。每台计算机分别命名为 Master 和 Slave,确保系统分区及 MySQL 安装路径的正确配置。 ... [详细]
  • 三大Python学习利器网站推荐
    本文将介绍三个在Python学习过程中极为有用的网站,特别是对于初学者而言,这些资源能提供巨大的帮助。 ... [详细]
  • 本文探讨了如何通过调整页面的文档模式设置,解决JSP Grid在Quirks模式下无法正常使用的常见问题。 ... [详细]
  • 本文提供了详细的步骤,指导如何在Ubuntu系统中配置ASOP源码的编译环境,特别强调了使用国内镜像加速下载过程的方法。若遇到文章加载问题或图片失效,建议访问原文链接获取最新信息。 ... [详细]
  • 创建动态精细百分比复合环形商务图表
    本文介绍如何在Excel中创建一个动态且精细的百分比复合环形图表,包括数据处理和图表美化等步骤。适用于2019年独角兽企业高薪招聘的Python工程师职位要求。 ... [详细]
  • 基于Spring 4.1.3与MyBatis等技术构建的企业级管理平台
    本文介绍了一款采用Spring 4.1.3、Spring MVC、MyBatis 1.2.3、Ehcache、Shiro、POI及EasyUI 1.4.1等技术框架开发的企业级管理平台。 ... [详细]
author-avatar
空白画叶子
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有