首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安卓:如何在EditText中设置可接受的数字和字符?

问安卓:如何在EditText中设置可接受的数字和字符?
EN

Stack Overflow用户
提问于 2012-04-27 11:52:55
回答 4查看 25.7K关注 0票数 15

我必须在EditText中设置可接受的字符"0123456789“和”分号“。下面是我使用的代码。

代码语言:javascript
复制
android:digits="0123456789;"
android:inputType="number|text

这个实现的问题是,在HTC手机中,不能输入分号,但在三星和索尼爱立信,可以输入分号。另一个问题是,当我在三星和索尼爱立信输入分号时,分号无法删除。上面的代码中有缺失的属性吗?提前谢谢。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-04-27 12:50:29

Android提供了一种编辑文本字段的简单方法,只需修改布局xml并添加一个文本“android:inputType=”即可。这使您可以轻松创建一些基本的验证,如数字,小数,电话或电子邮件。但是没有字母数字的参数(即没有特殊字符)。为此,您需要使用如下所示的输入筛选器,并在代码中设置要使用该筛选器验证的字段。此输入过滤器

代码语言:javascript
复制
 InputFilter alphaNumericFilter = new InputFilter() {   
     @Override  
     public CharSequence filter(CharSequence arg0, int arg1, int arg2, Spanned arg3, int arg4, int arg5)  
     {  
         for (int k = arg1; k < arg2; k++) {   
             if (!Character.isLetterOrDigit(arg0.charAt(k))) {   
             return ""; 
             }   //the first editor deleted this bracket when it is definitely necessary...
         }
         return null;
     }  
 };   
 mFirstName.setFilters(new InputFilter[]{ alphaNumericFilter});   
票数 28
EN

Stack Overflow用户

发布于 2012-04-27 11:58:30

要限制用户在键入时可以输入的内容,请使用本问题Android: How can I validate EditText input?.中讨论的TextWatcher

更好的是:Allow only selected charcters based on regex in an EditText

票数 1
EN

Stack Overflow用户

发布于 2012-04-27 12:17:03

解决方案是修改这些字段:http://developer.android.com/reference/android/widget/TextView.html#attr_android:inputMethod

设置EditText的InputMethod,以便正确获取所需内容。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10344493

复制
相关文章

相似问题

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