android EditText限制输入

今天有一个需要,就是EditText要求只接收中文和英文的输入内容。

翻了下api,发现EditText中有一个setFilters方法来限制用户输入内容。

而setFilters方法接收一个InputFilter接口,而InputFilter有2个内部实现类一个是AllCaps另外一个是LengthFilter

第一个AllCaps讲接收到的英文全部大写。

第二个是文本内容长度过滤(中文是2个长度哦。)

那么我们就只需要创建一个类继承LengthFilter兵实现filter方法即可

    public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
        if(source.toString().length() == 0 || source.toString().matches("[\\u4E00-\\u9FA5a-zA-Z]+")){
            return super.filter(source, start, end, dest, dstart, dend);
        }
        return dest.subSequence(dstart, dend);
    }
时间: 2024-12-14 08:23:02

android EditText限制输入的相关文章

android EditText 限制输入大小写,大写转小写

在写登录验证的时候,需要将用户输入的大写字符转化为小写.看了下API,只有InputFilter.AllCaps是将EditText 的小写英文字符转化为大写.好吧.依赖AllCaps在写个类似的InputFilter吧.基本上Copy AllCaps的代码,只改了两行.大家看代码吧 import android.text.InputFilter; import android.text.SpannableString; import android.text.Spanned; import a

代码设置Android EditText的输入长度maxLength

在今天开发中遇到一个自己写的自定义控件,因为考虑到复用,在每个需求下的edittext的输入长度不一样,在xml文件里面设置是不能实现这个需求的,于是在发现了这个API,可以通过代码设置! 希望对大家有所帮助! public void setEtCoustomLength(int length){ if (length>0) { etCoustom.setFilters(new InputFilter[]{new InputFilter.LengthFilter(length)}); } } 重

Android EditText中输入价格判断

EditText 中输入价格判断 mText.addTextChangedListener(new SimpleEditWatcher() { @Override public void afterTextChanged(Editable s) { final String text = s == null ? "" : s.toString(); mClickButton = !TextUtils.isEmpty(text.trim()); int index = text.inde

(转)Android EditText限制输入字符的5种实现方式

最近项目要求限制密码输入的字符类型, 例如不能输入中文.   现在总结一下EditText的各种实现方式,  以比较各种方法的优劣. 第一种方式:  设置EditText的inputType属性,可以通过xml或者java文件来设置.假如我要设置为显示密码的形式,可以像下面这样设置: 在xml中,   android:inputType="textPassword" 在java文件中,可以用 ev.setInputType(InputType.TYPE_TEXT_VARIATION_P

Android EditText的输入监听,输入字符的动态获取

http://itindex.net/detail/38974-android-edittext-%E7%9B%91%E5%90%AC 有时候我们可能会用到时时的监听EditText输入字符的时时监听,监听字符的个数,做一些正则表达式的处理等.如下方法可以实现: 我做的是时时的把EditeText输入的数据同步到TextView上 布局文件: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android&

Android EditText 限制输入为ip类型

editText.setInputType(InputType.TYPE_CLASS_NUMBER); String digits = "0123456789."; editText.setKeyListener(DigitsKeyListener.getInstance(digits)); setInputType 要优先于 digits ,不然digits的限制会被setInputType 覆盖 原文地址:https://www.cnblogs.com/H-BolinBlog/p/

android 设置字体颜色、EditText自动输入转换成大写字母的多种方式

在TextView上面设置某一个字的字体颜色为指定颜色时,可以通过java类SpannableString类和Html语言来实现. (一)SpannableString类方式 private void setText(TextView t){ String text = t.getText().toString().trim(); SpannableString span = new SpannableString(text); span.setSpan(new ForegroundColorS

android 中如何限制 EditText 最大输入字符数

方法一: 在 xml 文件中设置文本编辑框属性作字符数限制 如:android:maxLength="10" 即限制最大输入字符个数为10 方法二: 在代码中使用InputFilter 进行过滤 //editText.setFilters(new InputFilter[]{new InputFilter.LengthFilter(20)}); 即限定最大输入字符数为20 [java] view plaincopy public class TextEditActivity exten

android EditText多行文本输入的若干问题

以前习惯了网页以及swing上的文本框输入,现在到Android上突然没有了这种控件,刚开始使用起来还是比较费力的.为了想实现多行文本框的输入及显示效果,逐一解决了如下问题: 1. 如何让EditText显示成为一个文本框的区域用来输入: 2. 光标从首行开始显示: 3. 如何是设置卷轴: 4. 如何固定文本框的大小. 5. 如何让文本框显示边线: 为了达到如下的效果,我们做了如下的工作: <EditText android:id="@+id/add_content" andro