Android:如何在 EditText 中设置可接受的数字和字符? [英] Android : How to set acceptable numbers and characters in EditText?

查看:30
本文介绍了Android:如何在 EditText 中设置可接受的数字和字符?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I have to set acceptable characters "0123456789" and "semicolon" in the EditText. Below is the code I'm using.

android:digits="0123456789;"
android:inputType="number|text

该实现的问题在于,在 HTC 手机中,无法输入分号,但在三星和索尼爱立信中,可以输入分号.另一个问题是我在三星和索尼爱立信输入分号时,分号无法删除.上面的代码中是否缺少任何属性?提前致谢.

The problem with that implementation is in HTC phones, semicolon can't be entered but in Samsung and Sony Ericsson, semicolon can be entered. Another problem is when I entered semicolon in Samsung and Sony Ericsson, semicolon can't be deleted. Is there any missing property in the above code? Thanks in advance.

推荐答案

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

Android provides an easy way to edit text fields by modifying the layout xml and adding an android:inputType="text". This lets you easily create some basic validations like numbers, decimal, phone or emails. But there's no parameter for alphanumeric (i.e. no special characters). To do this, you need to use an input filter like below and set the fields you want to validate with that filter in code. This input filter

 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});   

这篇关于Android:如何在 EditText 中设置可接受的数字和字符?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆