一行代码实现EditText数字输入逗号和位数限制

这篇博客介绍了一种实现EditText输入限制的方法,包括3位自动加逗号、自定义输入位数限制,并支持在字符串任意位置的增删改。文章详细解释了实现过程中的难点和解决策略,并提供了工具类代码。读者可以关注作者,加入交流群,或在GitHub上查看完整代码。

这里写图片描述

我们可能面临这样的需求EditText输入限制n位整数,n位小数。有些产品,提出了整数要根据三个数来加逗号。笔者也是找了半天没有找到太好的工具类,于是自己封装了一个。

实现功能:
1.3位自动加逗号
2.自定义限制输入位数
3.支持在串的任意位置增加,修改,删除。
4.对空和有内容进行回调封装
5.对输入结束后进行回调封装

使用方法:

//10位整数两位小数
EditTextTools editTextTools= new EditTextTools(mEditText,10,2);

如果需要45两个需求的回调:

editTextTools.setOnEmptyListener(new EditTextTools.OnEmptyListener() {
            @Override
            public void onEmpty() {

            }

            @Override
            public void onNoEmpty() {

            }
        });
        editTextTools.setOnBeforeAfterChangedListener(new EditTextTools.OnBeforeAfterChangedListener() {
            @Override
            public void onBeforeAfterChanged(String s) {

            }
        });

解释一下45两个需求为什么会存在,
4因为我们可能对数字采用特殊字体等,但是如果有hint那么汉字是没有被加入特殊字体库的,所以空的时候就用默认字体,有输入可能用特殊的自定义字体(一套数字英文自定义字体文件大小还是可以接受的)。
5我们输入的数据可能会想实时保存下来那我我们可能需要对串中的逗号进行剔除等,所以定义了这个借口。

然后我们罗列一下几个难点:
1.输入修改位置计算,因为我们可能自己增加逗号进去,所以位置可能会错乱。
2.如何避免多次回调TextWatcher
3.如何处理好数字串的限制长度和增加字符

12可能都是Android的一些技巧,

1.通过onTextChanged(CharSequence s, int start, int before, int count)
几个回调的值,来处理setSelection。

2.我们在给EditText赋值text时候解除监听,赋值后继续添加监听

mEditText.removeTextChangedListener(
内容概要:本文系统性地介绍了基于前馈神经网络(FFNN)的空压机负荷预测方法,并采用Matlab平台实现完整代码。研究聚焦于工业压缩空气系统的能耗特性,通过构建人工神经网络模型对负荷时序数据进行建模与预测,旨在提升能源管理的精细化水平与运行效率。文中详述了数据预处理、特征工程、网络结构设计、模型训练、超参数调优及预测性能评估等关键环节,充分展现了神经网络在处理非线性、时变负荷序列方面的强大拟合能力。所提供的Matlab代码具备良好的可读性与可复现性,便于读者深入理解算法细节并迁移应用于相似的工业预测场景。; 适合人群:具备Matlab编程基础机器学习基本理论的科研人员、电气工程及相关专业的高校研究生、从事工业节能、智能制造与能源系统优化的技术工程师。; 使用场景及目标:①实现工业压缩空气系统的短期与中期负荷预测,支撑节能优化与设备调度决策;②作为智能能源管理系统(如微电网、综合能源系统)中的核心负荷预测模块;③为风电、光伏、用电负荷等相关领域的时序预测问题提供方法借鉴与技术参考;④辅助科研人员掌握基于神经网络的预测建模流程,完成学术复现与技术创新。; 阅读建议:建议读者结合提供的Matlab代码进行逐行调试与运行,重点剖析输入特征的选取依据、FFNN网络层数与神经元数量的设计逻辑、激活函数与损失函数的选择,以及训练过程中学习率、迭代次数等参数的调整策略。鼓励在不同工况或数据集上进行迁移实验,以深入理解模型的泛化性能与鲁棒性。
源码直接下载地址: https://pan.quark.cn/s/a4b39357ea24 Visio 资源素材集合涵盖了大量的网络拓扑图资源,对于绘制拓扑图具有显著的辅助作用。此类资源素材能够协助用户迅速构建拓扑图,从而有效提升工作效能。Visio 资源素材的主要特性包括: 1. 矢量图形:所有图形元素均采用矢量格式,无论放大或缩小都不会出现失真现象,能够适应多样化的使用情境。 2. 高度紧凑:每个图形元素占用的磁盘存储空间非常有限,多数情况下在 2~3K 范围内,有助于节约存储资源。 3. 图形库内容丰富:图形库内提供了多样化的图形资源,涵盖了计算机、网络设备、服务器、交换机、路由器等多种类别。 4. 多版本兼容:图形库提供两个版本选择:适用于 PowerPoint 的版本适用于 Visio 的版本,能够满足不同场景下的使用需求。Visio 资源素材的构成要素: 1. 抽象图形:抽象图形分为三个色系:浅紫色、黄色、深蓝色,其内容保持一致,仅色彩有所区别。 2. 网络设备图形:包含了计算机、服务器、交换机、路由器等图形元素。 3. 网络拓扑图形:涵盖了网络拓扑图形、MetroLan Switch、OLT、MDBridge 等多种图形。Visio 资源素材的应用方法: 1. 精选图形:依据不同的使用需求,挑选适宜的图形,例如选用浅紫色系列的图形来表示服务器,或采用黄色系列的图形来表示交换机。 2. 图形库应用:在 Visio 软件中利用图形库,能够快速构建拓扑图,显著提升工作效能。 3. 图形定制:如需个性化调整,可根据自身需求对图形进行定制,例如调整图形的色彩、尺寸等。Visio 资源素材的优势之处: 1. 工作效能提升:借助 Visio 资源素材,能够迅速完成...
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值