1

我有一个EditText. 我只想要输入字符:a->z,A->Z,0->9 and @.#,-,_ 如何限制键盘输入中的键EditText

4

5 回答 5

7

试试这个

<EditText 
  android:layout_height="wrap_content" 
  android:layout_width="match_parent" 
  android:inputType="text"
  android:digits="0123456789......yourcharcters"/>
于 2012-12-14T09:53:01.580 回答
3

您可以使用此代码片段通过正则表达式对其进行检查:

EditText yourEditText = (EditText)findViewById(R.id.yourEditText );
if( !yourEditText.getText().toString().matches("[a-zA-Z]+") ); // This regex matches only letters
  yourEditText.setError( "Error on text, only a->z,A->Z" );

您可以将此角色添加到事件中……例如单击按钮。

对于您想要的正则表达式,您可以在 Internet 上找到它,或者尝试编写您的正则表达式并在此站点上对其进行测试: Regexplanet

于 2012-12-14T09:56:30.340 回答
2

我想到的第一个想法是创建一个TextWatcher并验证用户输入的每个字符,使用正则表达式构造。

于 2012-12-14T09:52:00.630 回答
2

你可以试试这个

EditText et = new EditText(this);
int maxLength = 3;
InputFilter[] FilterArray = new InputFilter[1];
FilterArray[0] = new InputFilter.LengthFilter(maxLength);
et.setFilters(FilterArray);
于 2012-12-14T09:52:21.520 回答
2

看看这个:android:inputType

如果您没有找到好的组合,则实现您自己的侦听器并在每次更改时验证文本。

于 2012-12-14T09:52:23.407 回答