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

 更新时间:2017年04月15日 09:17:19   投稿:jingxian  
下面小编就为大家带来一篇Android 限制edittext 整数和小数位数 过滤器(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

写了一个过滤器,根据需要限制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 整数和小数位数 过滤器(详解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • android开机自启动APP及使用adb命令测试方法

    android开机自启动APP及使用adb命令测试方法

    今天小编就为大家分享一篇android开机自启动APP及使用adb命令测试方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-08-08
  • Android 使用URLConnection下载音频文件的方法

    Android 使用URLConnection下载音频文件的方法

    有时候我们会需要下载音频文件。这里提供一种思路,将在线音频文件通过流写到本地文件中。需要的朋友可以参考下
    2019-09-09
  • Android使用Dialog风格弹出框的Activity

    Android使用Dialog风格弹出框的Activity

    这篇文章主要为大家详细介绍了Android使用Dialog风格弹出框的Activity,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-09-09
  • android12 SD如何动态申请读写权限

    android12 SD如何动态申请读写权限

    这篇文章主要给大家介绍了关于android12 SD如何动态申请读写权限的相关资料,从Android 6.0开始,权限不再是在manifest⽂件中粘贴⼀下即可,这时候权限也正式⾛进⼤家的视野,需要的朋友可以参考下
    2023-07-07
  • Android中EditText屏蔽第三方输入法表情的方法示例

    Android中EditText屏蔽第三方输入法表情的方法示例

    最近在工作终于遇到一个问题,因为第三方输入法表情的问题导致Android中TextView的内容显示异常,只能想办法解决了,下面这篇文章主要记录了在处理Android中EditText屏蔽第三方输入法表情的方法,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-01-01
  • 浅谈Android面向切面编程(AOP)

    浅谈Android面向切面编程(AOP)

    这篇文章主要介绍了浅谈Android面向切面编程(AOP),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11
  • Android利用ViewPager实现滑动广告板实例源码

    Android利用ViewPager实现滑动广告板实例源码

    利用ViewPager我们可以做很多事情,从最简单的导航,到页面切换菜单等等。ViewPager的功能就是可以使视图滑动,就像Lanucher左右滑动那样
    2013-06-06
  • Android 个人理财工具三:添加账单页面 上

    Android 个人理财工具三:添加账单页面 上

    本文主要介绍Android 个人理财工具添加账单页面的功能实现,这里提供实例代码和实现效果图,有兴趣的小伙伴可以参考下
    2016-08-08
  • Android编程实现两个Activity之间共享数据及互相访问的方法

    Android编程实现两个Activity之间共享数据及互相访问的方法

    这篇文章主要介绍了Android编程实现两个Activity之间共享数据及互相访问的方法,简单分析了Android中Activity数据共享与访问的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-11-11
  • Android编程之简单启动画面实现方法

    Android编程之简单启动画面实现方法

    这篇文章主要介绍了Android编程之简单启动画面实现方法,结合实例形式较为详细的分析了开机启动画面的制作步骤及布局、Activity跳转、权限控制等的相关操作技巧,需要的朋友可以参考下
    2016-11-11

最新评论