Android 限制edittext 整数和小数位数 过滤器(详解)

发布时间 - 2026-01-11 00:40:07    点击率:

写了一个过滤器,根据需要限制edittext输入的整数和小数位,如下代码:

package allone.verbank.apad.client.component;

import android.text.InputFilter;
import android.text.Spanned;

/**
 * 
 * @Title: ComponentDigitCtrlFilter.java 
 * @Package allone.verbank.apad.client.component 
 * @Description: 为了限制edit根据商品输入指定的位数和小数位
 * @author qiulinhe qiu.linhe@allone.cn 
 */
public class ComponentDigitCtrlFilter implements InputFilter {

 private boolean isJPY;
 private int digit;

 public ComponentDigitCtrlFilter(boolean isJPY, int digit) {
 this.isJPY = isJPY;
 this.digit = digit;
 }

 @Override
 public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
 // 删除等特殊字符,直接返回
 if ("".equals(source.toString())) {
 return null;
 }
 String oriValue = dest.toString();
 StringBuffer sb = new StringBuffer(oriValue);
 sb.append(source);
 String newValue = sb.toString();
 String[] newValueVec = newValue.split("\\.");
 if (newValueVec.length == 2) {
 double number = Double.parseDouble(newValueVec[0]);
 boolean numberflag = true;
 if (isJPY) {
 numberflag = ((number - 999 > 0.000001) ? false : true);
 } else {
 numberflag = ((number - 99 > 0.000001) ? false : true);
 }

 boolean digitflag = true;
 try {
 String digitNumber = newValueVec[1];
 digitflag = digitNumber.toCharArray().length > digit ? false : true;
 } catch (Exception ex) {
 digitflag = false;
 }
 if (numberflag && digitflag) {
 return source;
 } else {
 return "";
 }
 } else {
 double value = Double.parseDouble(newValue);
 if (isJPY) {
 return value > 999 ? "" : source;
 } else {
 return value > 99 ? "" : source;
 }
 }
 // dest.subSequence(dstart, dend)
 }
}

逻辑是判断传入的isJPY是否是要整数两位小数三位数的,然后对输入的数据进行限制,只需要将过滤器添加到对应的edittext控件即可,如下:stopEditText.setFilters(new InputFilter[] { new ComponentDigitCtrlFilter(digit == 2, digit) });

以上这篇Android 限制edittext 整数和小数位数 过滤器(详解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。


# edittext限制小数位数  # EditText限制小数点前后位数的实例  # Android金额输入框只允许输入小数点后两位效果  # EditText限制输入数字  # 精确到小数点后1位的设置方法  # Android 限制显示小数点后两位的实现方法  # 给大家  # 只需  # 两位  # 希望能  # 写了  # 要将  # 这篇  # 小编  # 大家多多  # 特殊字符  # linhe  # qiu  # public  # cn  # qiulinhe  # Description  # Package  # author  # edit  # implements 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 香港网站服务器数量如何影响SEO优化效果?  深圳网站制作的公司有哪些,dido官方网站?  如何基于云服务器快速搭建网站及云盘系统?  如何确保FTP站点访问权限与数据传输安全?  ,交易猫的商品怎么发布到网站上去?  Laravel如何使用Eloquent进行子查询  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  Laravel如何使用.env文件管理环境变量?(最佳实践)  Laravel如何与Docker(Sail)协同开发?(环境搭建教程)  如何在Windows服务器上快速搭建网站?  如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?  使用Dockerfile构建java web环境  专业商城网站制作公司有哪些,pi商城官网是哪个?  Laravel如何处理JSON字段的查询和更新_Laravel JSON列操作与查询技巧  Laravel Sail是什么_基于Docker的Laravel本地开发环境Sail入门  Laravel如何部署到服务器_线上部署Laravel项目的完整流程与步骤  PHP正则匹配日期和时间(时间戳转换)的实例代码  如何用美橙互联一键搭建多站合一网站?  canvas 画布在主流浏览器中的尺寸限制详细介绍  今日头条微视频如何找选题 今日头条微视频找选题技巧【指南】  深圳防火门网站制作公司,深圳中天明防火门怎么编码?  1688铺货到淘宝怎么操作 1688一键铺货到自己店铺详细步骤  谷歌浏览器下载文件时中断怎么办 Google Chrome下载管理修复  Laravel如何使用Scope本地作用域_Laravel模型常用查询逻辑封装技巧【手册】  java获取注册ip实例  Laravel如何实现URL美化Slug功能_Laravel使用eloquent-sluggable生成别名【方法】  Laravel请求验证怎么写_Laravel Validator自定义表单验证规则教程  html文件怎么打开证书错误_https协议的html打开提示不安全【指南】  iOS验证手机号的正则表达式  Python并发异常传播_错误处理解析【教程】  如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南  Android Socket接口实现即时通讯实例代码  Laravel怎么生成二维码图片_Laravel集成Simple-QrCode扩展包与参数设置【实战】  如何登录建站主机?访问步骤全解析  专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?  广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?  如何在万网利用已有域名快速建站?  香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧  如何在Windows虚拟主机上快速搭建网站?  JavaScript如何实现音频处理_Web Audio API如何工作?  电视网站制作tvbox接口,云海电视怎样自定义添加电视源?  网站制作软件免费下载安装,有哪些免费下载的软件网站?  Laravel如何使用Telescope进行调试?(安装和使用教程)  如何在企业微信快速生成手机电脑官网?  车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?  网站建设整体流程解析,建站其实很容易!  Laravel如何处理JSON字段_Eloquent原生JSON字段类型操作教程  详解Huffman编码算法之Java实现  如何在宝塔面板中修改默认建站目录?  如何快速搭建自助建站会员专属系统?