【问题标题】:How can limit input in EditText?如何限制 EditText 中的输入?
【发布时间】:2012-12-02 07:20:14
【问题描述】:
我有一个EditText。
我只想要输入字符:a->z,A->Z,0->9 and @.#,-,_
如何在EditText 中限制键盘输入?
【问题讨论】:
-
在 .xml 的 EditText 字段中,您可以设置“android:inputType=...”来限制输入。查看here 以获取有关各种输入类型的更多信息。但我认为没有适合您的输入类型。所以你必须以编程方式进行并检查每个字符。
标签:
android
android-widget
android-edittext
【解决方案1】:
试试这个
<EditText
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:inputType="text"
android:digits="0123456789......yourcharcters"/>
【解决方案2】:
您可以使用此代码片段通过正则表达式对其进行检查:
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" );
您可以将此角色添加到事件中...例如单击按钮。
对于您想要的正则表达式,您可以在互联网上找到它,或者尝试编写您的正则表达式并在此站点上对其进行测试:
Regexplanet
【解决方案4】:
你可以试试这个
EditText et = new EditText(this);
int maxLength = 3;
InputFilter[] FilterArray = new InputFilter[1];
FilterArray[0] = new InputFilter.LengthFilter(maxLength);
et.setFilters(FilterArray);