如何限制EditText中的输入?

时间:2012-12-14 09:46:45

标签: android android-widget android-edittext

我有一个EditText。 我只想要输入字符:a->z,A->Z,0->9 and @.#,-,_ 如何在EditText

中限制键盘输入键

5 个答案:

答案 0 :(得分:7)

试试这个

<EditText 
  android:layout_height="wrap_content" 
  android:layout_width="match_parent" 
  android:inputType="text"
  android:digits="0123456789......yourcharcters"/>

答案 1 :(得分: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" );

您可以在活动中添加此cose ...例如点击按钮。

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

答案 2 :(得分:2)

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

答案 3 :(得分:2)

你可以试试这个

EditText et = new EditText(this);
int maxLength = 3;
InputFilter[] FilterArray = new InputFilter[1];
FilterArray[0] = new InputFilter.LengthFilter(maxLength);
et.setFilters(FilterArray);

答案 4 :(得分:2)

检查出来:android:inputType

如果找不到好的组合,那么每次更改时都要实现自己的监听器并验证文本。