Android金额输入框只允许输入小数点后两位效果
发布时间 - 2026-01-11 01:31:33 点击率:次一:要实现这个效果也不是很复杂,只需要设置输入框输入的字符类型、设置InputFilter、设置输入变化监听即可。下面直接来看代码吧….

二:new 一个class extends AppCompatEditText并写上一个初始化函数
private void init() {
//设置输入框允许输入的类型(正则)
//对应的布局属性是--->android:digits="0123456789."
setKeyListener(DigitsKeyListener.getInstance("0123456789."));
//设置输入字符
setFilters(new InputFilter[]{inputFilter});
addTextChangedListener(this);
}
三:inputFilter来分割小数后的保留位数
private InputFilter inputFilter = new InputFilter() {
@Override
public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
// 删除等特殊字符,直接返回
if (TextUtils.isEmpty(source)) {
return null;
}
String dValue = dest.toString();
String[] splitArray = dValue.split("\\.");
if (splitArray.length > 1) {
String dotValue = splitArray[1];
// 2 表示输入框的小数位数
int diff = dotValue.length() + 1 - 2;
if (diff > 0) {
return source.subSequence(start, end - diff);
}
}
return null;
}
};
如果你想保留其它位数的小数,只需要把上面的2改成你需要的位数即可。
三:输入框输入变化的监听,来处理小数点不能出现在第一位&&不能出现多个
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
//如果输入框为空则不处理
if (TextUtils.isEmpty(s)) {
return;
}
//第一个字符不为小数点
if (s.length() == 1 && s.toString().equals(".")) {
setText("");
return;
}
int counter = counter(s.toString(), '.');
if (counter > 1) {
//小数点第一次出现的位置
int index = s.toString().indexOf('.');
setText(s.subSequence(0, index + 1));
}
setSelection(getText().toString().length());
}
四:统计一个字符在字符串中出现的次数
/**
* 统计一个字符在字符串中出现的次数
*
* @param s 字符串
* @param c 字符
* @return 數量
*/
public int counter(String s, char c) {
int count = 0;
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) == c) {
count++;
}
}
return count;
}
就这几步就可以轻松实现了,想看源码的点击这里哦源码链接
以上所述是小编给大家介绍的Android金额输入框只允许输入小数点后两位效果,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!
# android
# 金额输入框
# EditText限制小数点前后位数的实例
# EditText限制输入数字
# 精确到小数点后1位的设置方法
# Android 限制edittext 整数和小数位数 过滤器(详解)
# Android 限制显示小数点后两位的实现方法
# 输入框
# 小编
# 第一个
# 多个
# 出现在
# 只需
# 两位
# 你想
# 要把
# 点击这里
# 给大家
# 只需要
# 想看
# 不为
# 几步
# 所述
# 写上
# 给我留言
# 很复杂
# 就可以
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel软删除怎么实现_Laravel Eloquent SoftDeletes功能使用教程
香港服务器建站指南:外贸独立站搭建与跨境电商配置流程
千问怎样用提示词获取健康建议_千问健康类提示词注意事项【指南】
如何用PHP快速搭建高效网站?分步指南
linux写shell需要注意的问题(必看)
Laravel中的withCount方法怎么高效统计关联模型数量
C++用Dijkstra(迪杰斯特拉)算法求最短路径
如何快速完成中国万网建站详细流程?
如何用美橙互联一键搭建多站合一网站?
Python企业级消息系统教程_KafkaRabbitMQ高并发应用
html5源代码发行怎么设置权限_访问权限控制方法与实践【指南】
网站制作大概多少钱一个,做一个平台网站大概多少钱?
如何在万网自助建站中设置域名及备案?
谷歌浏览器下载文件时中断怎么办 Google Chrome下载管理修复
LinuxShell函数封装方法_脚本复用设计思路【教程】
Laravel Eloquent访问器与修改器是什么_Laravel Accessors & Mutators数据处理技巧
Laravel请求验证怎么写_Laravel Validator自定义表单验证规则教程
详解vue.js组件化开发实践
Laravel如何自定义错误页面(404, 500)?(代码示例)
免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?
Laravel如何实现URL美化Slug功能_Laravel使用eloquent-sluggable生成别名【方法】
详解CentOS6.5 安装 MySQL5.1.71的方法
齐河建站公司:营销型网站建设与SEO优化双核驱动策略
详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)
Laravel如何使用Sanctum进行API认证?(SPA实战)
使用spring连接及操作mongodb3.0实例
Laravel如何使用Passport实现OAuth2?(完整配置步骤)
Laravel如何从数据库删除数据_Laravel destroy和delete方法区别
重庆市网站制作公司,重庆招聘网站哪个好?
在线教育网站制作平台,山西立德教育官网?
打开php文件提示内存不足_怎么调整php内存限制【解决方案】
HTML 中如何正确使用模板变量为元素的 name 属性赋值
东莞专业网站制作公司有哪些,东莞招聘网站哪个好?
手机网站制作与建设方案,手机网站如何建设?
如何快速生成凡客建站的专业级图册?
bing浏览器学术搜索入口_bing学术文献检索地址
Laravel怎么使用artisan命令缓存配置和视图
深圳网站制作平台,深圳市做网站好的公司有哪些?
焦点电影公司作品,电影焦点结局是什么?
Laravel如何发送邮件_Laravel Mailables构建与发送邮件的简明教程
电视网站制作tvbox接口,云海电视怎样自定义添加电视源?
Java垃圾回收器的方法和原理总结
Laravel如何使用Facades(门面)及其工作原理_Laravel门面模式与底层机制
Laravel Pest测试框架怎么用_从PHPUnit转向Pest的Laravel测试教程
Laravel如何升级到最新版本?(升级指南和步骤)
Laravel中间件起什么作用_Laravel Middleware请求生命周期与自定义详解
Laravel如何实现多对多模型关联?(Eloquent教程)
b2c电商网站制作流程,b2c水平综合的电商平台?
如何获取PHP WAP自助建站系统源码?
Laravel如何使用模型观察者?(Observer代码示例)
上一篇:《枪魂狙击》竞技场玩法介绍
上一篇:《枪魂狙击》竞技场玩法介绍

