Android EditText 限制输入小数位数

首先提到一个输入过滤器,用来约束用户输入的内容关键接口:InputFilters
我们现在要做的就是重写这个接口

/**
 * Created by jary on 2016/11/3.
 *  设置小数位数控制
 */
public class PointLengthFilter implements InputFilter {

/** 输入框小数的位数  示例保留一位小数*/
private static final int DECIMAL_DIGITS = 1;

public CharSequence filter(CharSequence source, int start, int end,
                           Spanned dest, int dstart, int dend) {
    // 删除等特殊字符,直接返回
    if ("".equals(source.toString())) {
        return null;
    }
    String dValue = dest.toString();
    String[] splitArray = dValue.split("\\.");
    if (splitArray.length > 1) {
        String dotValue = splitArray[1];
        int diff = dotValue.length() + 1 - DECIMAL_DIGITS;
        if (diff > 0) {
            return source.subSequence(start, end - diff);
        }
    }
    return null;
}
}

调用示例

xml 代码
<EditText
    android:id="@+id/et_text"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:inputType="numberDecimal"   //记得限制输入类型为小数
    />
java代码
  etText= (EditText) findViewById(R.id.et_accounting_money);
  etText.setFilters(new InputFilter[]{new Lengthfilter()});
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,997评论 19 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,974评论 6 342
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,612评论 25 708
  • 一个炎炎夏日的清晨,我被一阵短促而清脆的闹铃声惊醒了,我迷迷糊糊地看了下闹钟,已经七点半了。我心中纳闷“怎么睡得这...
    鉬鈺阅读 340评论 6 3
  • 【20170508晚餐】米饭,彩椒炒玉米粒,糖拌柿子,蘸酱菜 老妈的小菜园开张了,继续吃蘸酱菜 【20170509...
    波烟渺渺阅读 178评论 0 0