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 轻松实现图片倒影效果实例代码

    Android 轻松实现图片倒影效果实例代码

    这篇文章主要介绍了Android 轻松实现图片倒影效果实例代码,有需要的朋友可以参考一下
    2014-01-01
  • Android自定义控件ScrollView实现上下滑动功能

    Android自定义控件ScrollView实现上下滑动功能

    这篇文章主要为大家详细介绍了Android自定义控件ScrollView实现上下滑动功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-07-07
  • 使用Flutter定位包获取地理位置

    使用Flutter定位包获取地理位置

    本文详细讲解了使用Flutter定位包获取地理位置的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-11-11
  • Kotlin扩展函数及实现机制的深入探索

    Kotlin扩展函数及实现机制的深入探索

    扩展函数与扩展属性的神奇之处在于,可以在不修改原来类的条件下,使用函数和属性,表现得就像是属于这个类的一样。下面这篇文章主要给大家介绍了关于Kotlin扩展函数及实现机制的相关资料,需要的朋友可以参考下
    2018-06-06
  • myeclipse android环境搭建图文教程

    myeclipse android环境搭建图文教程

    在从事android应用开发过程中,搭配环境是所有开始的第一步,本文将介绍myeclipse android环境搭建图文教程,希望可以帮助大家完成android开发之旅
    2012-11-11
  • Android实现图片拖拉功能

    Android实现图片拖拉功能

    这篇文章主要为大家详细介绍了Android实现图片拖拉功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-12-12
  • android开发教程之文本框加滚动条scrollview

    android开发教程之文本框加滚动条scrollview

    EditText与TextView加上滚动条其实很简单,只需要在文本输入框或者文本显示框上面加上滚动条控件即可
    2014-02-02
  • Android View.Post 的原理及缺陷

    Android View.Post 的原理及缺陷

    这篇文章主要介绍了Android View.Post 的原理及缺陷,帮助大家更好的理解和学习使用Android,感兴趣的朋友可以了解下
    2021-03-03
  • Android开发之Sqliteopenhelper用法实例分析

    Android开发之Sqliteopenhelper用法实例分析

    这篇文章主要介绍了Android开发之Sqliteopenhelper用法,实例分析了SQLiteOpenHelper类操作数据库的相关技巧,需要的朋友可以参考下
    2015-05-05
  • 关于Android输入法弹窗bug的优雅处理

    关于Android输入法弹窗bug的优雅处理

    在Android应用中,当跳转到某个Activity时,该Activity显示页面的EditText获得焦点,在某些机器中会触发软键盘的自动弹出,这篇文章主要给大家介绍了关于Android输入法弹窗bug的优雅处理,需要的朋友可以参考下
    2021-10-10

最新评论