首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Android::通过其他InputFilter以编程方式设置EditText的最大长度

Android::通过其他InputFilter以编程方式设置EditText的最大长度
EN

Stack Overflow用户
提问于 2014-07-15 12:24:53
回答 7查看 59.3K关注 0票数 66

我像这样使用InputFilter,只允许字母和数字

代码语言:javascript
复制
private InputFilter[] inputFilters = new InputFilter[] { new InputFilter()
{
    @Override
    public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend)
    {
        for (int i = start; i < end; ++i)
        {
            if (!Pattern.compile("[ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890]*").matcher(String.valueOf(source.charAt(i))).matches())
            {
                return "";
            }
        }

        return null;
    }
} };

但问题是xml文件中的"android:maxLength“值不适用于此InputFilter

我想我需要InputFilter中的代码来设置EditText的最大长度

有人对此有好主意吗?

谢谢

EN

回答 7

Stack Overflow用户

发布于 2017-07-05 14:46:42

一个简单的一行代码是:

代码语言:javascript
复制
myEditText.setFilters(new InputFilter[] { new InputFilter.LengthFilter(10) });

//replace 10 with required length.
票数 100
EN

Stack Overflow用户

发布于 2015-01-16 17:38:17

代码语言:javascript
复制
public void setEditTextMaxLength(int length) {
    InputFilter[] filterArray = new InputFilter[1];
    filterArray[0] = new InputFilter.LengthFilter(length);
    edt_text.setFilters(filterArray);
}
票数 61
EN

Stack Overflow用户

发布于 2015-05-12 11:39:12

在@Deepak的基础上,我使用了以下代码:

代码语言:javascript
复制
public void setEditTextMaxLength(final EditText editText, int length) {
    InputFilter[] FilterArray = new InputFilter[1];
    FilterArray[0] = new InputFilter.LengthFilter(length);
    editText.setFilters(FilterArray);
}
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24749833

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档