【问题标题】:How to stop taking input after EditText length crosses a limitEditText长度超过限制后如何停止输入
【发布时间】:2016-01-29 16:17:33
【问题描述】:

我知道已经有人问了几个问题,但我有一点不同的问题。

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

android:maxLength="7"

或者这个

((EditText)findViewById(R.id.zip)).setFilters(new InputFilter[] {
    new InputFilter.LengthFilter(7)
});

我仍然可以在文本字段中输入内容,尽管它不可​​见且未被考虑在内。如果我继续打字,输入在限制后变得不可见,但test-suggestions 会继续构建更多的字母。

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

所以,我的问题是:有没有办法在某个字符长度后停止输入?

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

【问题讨论】:

  • 假设我的限制是 7 并且我输入了 10 个字母,那么我只会看到前 7 个字母,但文本建议会显示 10 个字母的单词。此外,我需要按退格键 3 次才能真正开始从我显示的 7 个字母单词中删除字母 - 是的。我尝试了同样的方法并找到了确切的情况

标签: android android-edittext


【解决方案1】:

只需将此添加到您的 EditText。一定会成功的。

 android:inputType="textFilter"

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

【讨论】:

    【解决方案2】:

    试试这个,

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

    edittext.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);
    

    android:inputType="textFilter"
    

    【讨论】:

    • 感谢您的回答,但我关心的不是建议。主要是关于停止输入。
    • 是的,这是一个错误,所以一旦你修改了输入类型 maxLength 就可以正常工作,防止用户输入更多缓冲区。
    【解决方案3】:

    这终于对我有用了:

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

    【讨论】:

      【解决方案4】:

      正如@Madhur 所建议的,在您的 EditText xml 中添加下一行:

      Documentation

      android:maxLength="7"
      

      【讨论】:

      • 谢谢,但这已经是我现在正在做的事情了。正如我在问题中提到的,我需要停止输入的帮助。
      • 输入应该在该行之后停止,您可以在编辑文本中输入0-6个字符的onlu。
      • 假设我的限制是 7 并且我输入了 10 个字母,那么我只会看到前 7 个字母,但是文本建议会显示 10 个字母的单词。此外,我需要按退格键 3 次才能真正开始从我显示的 7 个字母单词中删除字母。看看 OP 在说什么
      猜你喜欢
      • 1970-01-01
      • 2013-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多