Android 如何在EditText长度超过限制后停止输入

Android 如何在EditText长度超过限制后停止输入,android,android-edittext,Android,Android Edittext,我知道有几个问题已经被问过了,但我有一点不同的疑问 我们如何限制在EditText中输入的最大字符数?我是否这样做 android:maxLength="7" 还是这个 ((EditText)findViewById(R.id.zip)).setFilters(new InputFilter[] { new InputFilter.LengthFilter(7) }); 我仍然可以在文本字段中键入,尽管它不可见,也不被考虑。如果我继续键入,输入在限制后将不可见,但是测试建议会继续生成

我知道有几个问题已经被问过了,但我有一点不同的疑问

我们如何限制在
EditText
中输入的最大字符数?我是否这样做

android:maxLength="7"
还是这个

((EditText)findViewById(R.id.zip)).setFilters(new InputFilter[] {
    new InputFilter.LengthFilter(7)
});
我仍然可以在文本字段中键入,尽管它不可见,也不被考虑。如果我继续键入,输入在限制后将不可见,但是
测试建议
会继续生成更多的字母

假设我的限制是7,我输入了10个字母,那么我只会看到前7个字母,但文本建议将显示10个字母的单词。此外,我需要按backspace 3次才能真正开始从显示的7个字母的单词中删除字母

所以,我的问题是:有没有一种方法可以在某个字符长度之后停止输入

PS:不用说,虽然我不想在7个字母之后输入,但我允许删除或退格。

试试这个

android:inputType="textNoSuggestions|textVisiblePassword"
android:maxLength="7"


如@Madhur sugested所示,在EditText xml中添加下一行:


只需将此添加到编辑文本中。这肯定会奏效的

 android:inputType="textFilter"

我也尝试了同样的方法,它对我有效。

这终于对我有效了:

edittext.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);

谢谢你的回答,但我关心的不是建议。这主要是关于停止输入的。是的,这是一个错误,所以一旦修改了输入类型maxLength,它就会工作得很好,防止用户输入更多缓冲区。请注意,谢谢,但这已经是我现在正在做的。正如我在问题中提到的,我需要帮助停止输入。输入应该在该行之后停止,您可以在编辑文本中从0-6个字符只输入u。假设我的限制为7,我键入了10个字母,那么我只会看到前7个字母,但文本建议将显示10个字母的单词。此外,我需要按backspace 3次才能真正开始从显示的7个字母的单词中删除字母。看看OP是怎么说的我的上限是7,我输入了10个字母,然后我只会看到前7个字母,但是文本建议会显示10个字母的单词。此外,我需要按backspace键3次,才能真正开始从显示的7个字母的单词-True中删除字母。我也试过同样的方法,发现了确切的情况
android:maxLength="7"
 android:inputType="textFilter"
edittext.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);