我必须在EditText中设置可接受的字符"0123456789“和”分号“。下面是我使用的代码。
android:digits="0123456789;"
android:inputType="number|text这个实现的问题是,在HTC手机中,不能输入分号,但在三星和索尼爱立信,可以输入分号。另一个问题是,当我在三星和索尼爱立信输入分号时,分号无法删除。上面的代码中有缺失的属性吗?提前谢谢。
发布于 2012-04-27 12:50:29
Android提供了一种编辑文本字段的简单方法,只需修改布局xml并添加一个文本“android:inputType=”即可。这使您可以轻松创建一些基本的验证,如数字,小数,电话或电子邮件。但是没有字母数字的参数(即没有特殊字符)。为此,您需要使用如下所示的输入筛选器,并在代码中设置要使用该筛选器验证的字段。此输入过滤器
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}); 发布于 2012-04-27 11:58:30
要限制用户在键入时可以输入的内容,请使用本问题Android: How can I validate EditText input?.中讨论的TextWatcher
更好的是:Allow only selected charcters based on regex in an EditText
发布于 2012-04-27 12:17:03
解决方案是修改这些字段:http://developer.android.com/reference/android/widget/TextView.html#attr_android:inputMethod
设置EditText的InputMethod,以便正确获取所需内容。
https://stackoverflow.com/questions/10344493
复制相似问题