在EditText输入数字的时候,通常我们需要限制小数点前后位数。比如金额输入一般我们需要限制小数点后面最多2位。我们可以通过 TextWatcher 实现。

public class MyWatcher implements TextWatcher {

private int beforeDot;

private int afterDot;

/**

* 构造器

*

* @param beforeDot 小数点前位数 不限制输入-1

* @param afterDot 小数点后位数 不限制输入-1

*/

public MyWatcher(int beforeDot, int afterDot) {

this.beforeDot = beforeDot;

this.afterDot = afterDot;

}

@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) {

judge(s);

}

private void judge(Editable editable) {

String temp = editable.toString();

int posDot = temp.indexOf(".");

//直接输入小数点的情况

if (posDot == 0) {

editable.insert(0, "0");

return;

}

//连续输入0

if (temp.equals("00")) {

editable.delete(1, 2);

return;

}

//输入"08" 等类似情况

if (temp.startsWith("0") && temp.length() > 1 && (posDot == -1 || posDot > 1)) {

editable.delete(0, 1);

return;

}

//不包含小数点 不限制小数点前位数

if (posDot < 0 && beforeDot == -1) {

//do nothing 仅仅为了理解逻辑而已

return;

} else if (posDot < 0 && beforeDot != -1) {

//不包含小数点 限制小数点前位数

if (temp.length() <= beforeDot) {

//do nothing 仅仅为了理解逻辑而已

} else {

editable.delete(beforeDot, beforeDot + 1);

}

return;

}

//如果包含小数点 限制小数点后位数

if (temp.length() - posDot - 1 > afterDot && afterDot != -1) {

editable.delete(posDot + afterDot + 1, posDot + afterDot + 2);//删除小数点后多余位数

}

}

}

使用的时候 如下:

android:id="@+id/et_i_want"

android:layout_width="wrap_content"

android:layout_height="25dp"

android:hint="0.00"

android:inputType="numberDecimal"/>etIWant.addTextChangedListener(new MyWatcher(-1, 2));//限制小数点后最多2位

以上这篇EditText限制小数点前后位数的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

Android 小数点前后字体大小不一致,EditText限制小数点前后位数的实例相关推荐

  1. Android禁止app字体大小跟随系统字体大小调节

    Android禁止app字体大小跟随系统字体大小调节 针对字体不随系统应用改变而改变,不然会导致原来的一些布局变化,在Application中重写getResources() @Overridepub ...

  2. java如何输出大小不同的字_Eclipse下中英文字体大小不一致,如何解决

    公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解. 话题:Eclipse下中英文字体大小不一致,如何解决回答:默认的是Courier字体吧?换成Courier New字体就好了,大小不用改. ...

  3. OCR:OCR识别如何处理字体大小不一致的问题

    1.问题 OCR识别如何处理字体大小不一致的问题? 2.问题原因 因为图片中的文字大小不一致,导致识别不准确 3.解决方案 设置识别和检测的阈值,但是只能提升部分准确率,无法从根本上解决问题

  4. Android 中的字体大小适配

    Android系统中可以设置字体大小,对于一些设置了特大号字体的设备,往往会出现布局错乱的情况,对此,需要做相关的字体大小适配.根据聊聊 Android 中的字体大小适配这篇博客提供的方案,进行了一些 ...

  5. Android全局修改字体大小,Android 仿微信全局字体大小调整

    image 目录 一.前言 二.效果预览 三.实现步骤 1.自定义字体调整控件 2.滑动按钮改变当前页面预览字体大小 3.返回时,保存放大倍数并重启应用 4.初始化应用时配置字体放大倍数. 四.Dem ...

  6. android 使用ios字体大小,ios和android上的字体大小不同

    您将密度设置为1.0,并告诉Android的WebView在您以特定方式声明视口时不会缩放任何东西.您可以删除该视口声明,然后会导致图像缩放以及字体,或者可以基于用户运行应用程序的Android设备修 ...

  7. android设置应用字体大小,在Android应用程序改变的TextView的字体大小从原始设置更改字体大小(Font size...

    我想在我的应用程序指定我自己的文字大小,但我有这样一个问题. 当我在设备设置中更改字体大小,我的应用程序的字体大小TextView也会改变. Answer 1: 其实,设置字体大小只影响大小sp . ...

  8. android studio app字体大小设置,Android Studio App设置TextView文字内容大小颜色

    设置TextView文字内容大小颜色 1.第一种方法在activity_main.xml李设置,Java文件不用改: android:text="这里是文字" android:te ...

  9. Android TextView自动调整字体大小(官方)

    官方在 Android 8.0(API26)给TextView,新增字体大小随着控件的大小变化的特性. 如果使用 appcompat 兼容库,可以向下支持到Android 4.0(AP14). 1.自 ...

最新文章

  1. Haskell / GHC中的“ forall”关键字有什么作用?
  2. 寻找数组变化:树形结构,分治模型
  3. 翻手算法php,PHP各种常见经典算法总结【排序、查找、翻转等】
  4. 世界粮农组织五大健康食品_粮农组织的完整形式是什么?
  5. ORACLE索引重建方法与索引的三种状态
  6. sqlserver 字符串中是不是全为数字
  7. scipy —— 丰富的子包(io、cluster)
  8. git入门:安装配置 创建版本库
  9. Atitit 数据挖掘技术体系 目录 1. 统计分析(分组聚合等 1 2. Tag标注 结构化 1 2.1. · 复杂数据类型挖掘(Text, Web 2 2.2. ,图形图像,视频,音频等) 2
  10. 在ppt中怎么加入倒计时 里面怎么加入倒计时【方法】
  11. 辩证法——自然观、自然科学方法论和科学观
  12. Cross-lingual Document Retrieval using Regularized Wasserstein Distance
  13. 月薪40K+银行测试经理,自动化测试实践经验分享
  14. ios接入GameCenter登录
  15. “体验版”PyTorch 2.0备受瞩目,它到底好在哪里?
  16. 2022届中考倒计时倒计时
  17. 不同的丘脑皮层网络动力学与慢性腰痛的病理生理学有关
  18. echarts省级地图展示(包含3D地图)
  19. 父类声明子类实例化对象详解
  20. Linux系统怎么使用扫描仪,Linux系统中Nmap扫描命令的使用方法 -电脑资料

热门文章

  1. JAVA 创建文件和文件夹,删除文件和文件夹,复制文件和文件夹,移动文件和文件夹的实用工具类
  2. (附源码)springboor大学生防疫封校管理系统 毕业设计632124
  3. 救市重炮轮番轰炸 美欧央行联手将无限额注资
  4. 机器学习(十八)应用实例:照片OCR
  5. java eles什么意思_Springboot 那么大,不用什么场景都用它吧,要不尝试下 Mars- Java ?...
  6. 兔子生兔子循环python_python 实现兔子生兔子示例
  7. 南京 雅趣 php,书房雅趣-南京大学校报电子版《南京大学报》
  8. item_search - 根据关键词获取义乌购商品列表
  9. 名悦集团带你解析汽车底盘维护的那些小知识
  10. KMP算法求循环节,为什么能求循环节