EditText动态设置输入类型与过滤器的使用
来源:互联网 发布:淘宝助理手机版6.1 编辑:程序博客网 时间:2024/05/22 06:28
EditText动态设置输入类型与过滤器的使用
在项目中,出于需要对 EditText
的长度以及输入类型进行动态改变,自己通过设置 EditText
类中的 setInputType
与 setFilters
方法来实现这一功能。
例子一:设置纯数字类型,并且限制数字长度。
// 设置输入的类型为数字// 等价于xml中属性 android:inputType="number"editText.setInputType(InputType.TYPE_CLASS_NUMBER);// 限制输入长度限制(当前设置为5)// 使用系统自带的InputFilter接口类中的LengthFilter子类来完成的editText.setFilters(new InputFilter[] {new InputFilter.LengthFilter(5)});
例子二:设置带小数类型,限制小点前后数字长度。
// 设置输入的类型为带小数类型// 等价于xml中属性 android:inputType="numberDecimal"editText.setInputType(InputType.TYPE_CLASS_NUMBER|InputType.TYPE_NUMBER_FLAG_DECIMAL);// 限制小点前后数字长度(当前设置为前5后2)// 通过实现InputFilter接口来完成长度的限制editText.setFilters(new InputFilter[] {new DecimalInputFilter(5, 2)});
DecimalInputFilter 类的实现
import android.text.InputFilter;import android.text.Spanned;import android.text.TextUtils;/** * Created by sky on 16-9-2. */public class DecimalInputFilter implements InputFilter { private String mRegularExpression; public DecimalInputFilter() { this(5); } public DecimalInputFilter(int firstLength) { this(firstLength, 2); } public DecimalInputFilter(int firstLength, int lastLength) { mRegularExpression = String.format("(\\d{0,%d}(\\.\\d{0,%d})?)", firstLength, lastLength); } @Override public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) { boolean delete = false; StringBuilder builder = new StringBuilder(dest); if (TextUtils.isEmpty(source)) { delete = true; builder.delete(dstart, dend); } else { builder.insert(dstart, source); } String value = builder.toString(); return value.matches(mRegularExpression) ? null : delete ? "." : ""; }}
注:代码中的
delete
变量主要出于在单独选择.
进行删除操作成特意添加的,当删除.
时小数点前面的数字长度超出时程序在阻止其进行删除.
的操作。
0 0
- EditText动态设置输入类型与过滤器的使用
- EditText设置输入类型
- 在Edittext中设置输入的类型
- 设置Edittext 输入带有小数点类型的输入规则
- EditText动态设置文本类型
- EditText设置输入的类型,只能输入纯数字,只能输入手机号码,只能输入邮箱等等。
- 如何动态设置EditText输入的文字为密码形式
- Android 动态限制EditText输入的字条类型及键盘类型、对输入的监控
- EditText 的输入类型inputType
- EditText的输入限制类型
- EditText在代码中设置输入类型
- 代码中设置EditText输入类型
- EditText设置输入的类型,比如说限制只能输入字母和数字
- EditText的inputType类型设置
- EditText文本输入 emoji过滤器
- 关于EditText特定类型输入的方法
- Android 开发(如何动态设置EditText输入的文字为密码形式)
- EditText 限制输入的动态配置
- javascript基础
- 检查密码的规则合法性
- 【牛客网】机器人的运动范围
- 阿里感悟(八)-如何才能加入阿里?
- HSA DSE 初探索
- EditText动态设置输入类型与过滤器的使用
- Android减负第一弹 Logcat颜色搭配
- spring4.x注解概述
- 计算三个数合为0
- XML解析之SAX解析
- Tiny4412从SD卡启动内核与文件系统
- 么能在PHOTOSHOP里面一张图片里部分区域的颜色变色浅?
- 几种效应带来的启示
- 如何处理大数据文件+录入数据