我是靠谱客的博主 积极小鸽子,最近开发中收集的这篇文章主要介绍限制EditText输入类型与长度,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

这次遇到的问题是要对一个输入框可输入内容与长度做限制,以前的时候就在xml里面的EditText相应属性设置一下就好了

android:inputType="phone" // 电话
android:inputType="text" // 文字
android:inputType="number" // 数字

 长度也好搞,设置一个maxLength属性就ok了,但是如果需要限制输入的东西不是那种正好能概括的,上面的方法就不能用了,这个时候一般是用正则表达来限制输入。比如说,下面的代码就是对edittext限制了输入内容与输入长度的方法,中间是处理输入限制的逻辑,最后让edittext.setFilters,把这个过滤器放进去即可。

InputFilter filter = new InputFilter() {
@Override
public CharSequence filter(CharSequence source, int start, int end,
Spanned dest, int dstart, int dend) {
String regEx = "^[a-zA-Z0-9u4E00-u9FA5]";
// 大小写的字母,0到9,汉字
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(source);
String replace = m.replaceAll("").trim(); // 限制输入空格
// 输入前就存在的字符长度
int destCount = StringUtils.getCount(dest.toString());
// 输入前就已满直接不接收
if (destCount >= 32)
return "";
// 新输入的字符长度
int sourceCount = StringUtils.getCount(replace);
// 如果拼接后不超长,直接拼接
if (destCount + sourceCount <= 32)
return replace;
// 超长时不应该直接拒绝,应在允许范围内尽量拼接
if (destCount + sourceCount > 32)
return "";
return replace;
}
};
edittext.setFilters(new InputFilter[]{filter});

最后

以上就是积极小鸽子为你收集整理的限制EditText输入类型与长度的全部内容,希望文章能够帮你解决限制EditText输入类型与长度所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(35)

评论列表共有 0 条评论

立即
投稿
返回
顶部