如何在EditText长度超过限制后停止接收输入
如何在EditText长度超过限制后停止接收输入
我知道已经有一些问题被提出了,但我有一个稍微不同的问题。
如何限制在EditText
中输入的最大字符数?无论我使用这个方法
android:maxLength="7"
还是这个方法
((EditText)findViewById(R.id.zip)).setFilters(new InputFilter[] { new InputFilter.LengthFilter(7) });
我仍然可以在文本字段中输入文字,尽管它不可见且不被计算在内。如果我继续输入,超过限制后输入的文字将变成不可见,但是text-suggestions
会继续根据更多的文字建议。
假设我的限制是7个字符,我输入了10个字母,那么我只会看到前7个字母,但是文字建议会显示10个字母的单词。此外,我需要按3次退格键才能从显示的7个字母单词开始删除字母。
所以,我的问题是:有没有办法在达到一定字符长度后停止输入?
PS:不用说,尽管我不希望在7个字母后继续输入,但我会允许删除或使用退格键。
问题出现的原因是输入框(EditText)的长度超过限制时无法停止输入。解决方法是通过设置输入框的属性来限制输入长度。可以尝试以下几种方法:
1. 设置EditText的属性android:inputType为"textNoSuggestions|textVisiblePassword",并设置android:maxLength属性为所需的最大长度。
2. 使用edittext.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS)方法来设置输入框的属性。
3. 设置EditText的属性android:inputType为"textFilter"。
以上方法中,第一种方法是设置最大长度并禁用输入建议,第二种方法是设置输入框的属性为禁用输入建议,第三种方法是设置输入框的属性为过滤器。这些方法可以有效地停止输入框的输入。
如果以上方法不起作用,可以参考stackoverflow上的这个链接:stackoverflow.com/questions/12083183/…,里面提供了更多关于解决Android EditText最大长度的问题。