我需要在EditText中设置可接受的字符为"0123456789"和"分号"。以下是我正在使用的代码。
android:digits="0123456789;"
android:inputType="number|text
该实现的问题是,在HTC手机上无法输入分号,但在三星和索尼爱立信手机上可以输入分号。另一个问题是,当我在三星和索尼爱立信手机上输入分号时,无法删除分号。以上代码中是否缺少任何属性?提前致谢。
我需要在EditText中设置可接受的字符为"0123456789"和"分号"。以下是我正在使用的代码。
android:digits="0123456789;"
android:inputType="number|text
该实现的问题是,在HTC手机上无法输入分号,但在三星和索尼爱立信手机上可以输入分号。另一个问题是,当我在三星和索尼爱立信手机上输入分号时,无法删除分号。以上代码中是否缺少任何属性?提前致谢。
在Android中,通过修改布局xml并添加android:inputType="text",可以提供一种简单的方法来编辑文本字段。这使得您可以轻松地创建一些基本验证,例如数字、小数、电话或电子邮件。但是它没有用于字母数字字符(即没有特殊字符)的参数。要实现此目的,您需要使用下面的输入过滤器,并在代码中设置要使用该过滤器验证的字段。此输入过滤器
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});
textVisiblePassword
。 - Mahendran Sakkarai为了限制用户在输入时可以输入的内容,可以使用TextWatcher,该问题在Android:如何验证EditText输入?中讨论。
更好的方法是:基于正则表达式在EditText中仅允许选择的字符
解决方案是修改这些字段:http://developer.android.com/reference/android/widget/TextView.html#attr_android:inputMethod
设置EditText的InputMethod,以便您可以正确地获取所需内容。
这是正则表达式
Pattern mPattern = Pattern.compile("^([1-9][0-9]{0,2})?(\\.[0-9]?)?$");
Matcher matcher = mPattern.matcher(loginNameString.toString());
if(!matcher.find())
{
//TODO
}