【问题标题】:Prevent user from inserting more characters after size limit is reached in EditText box [duplicate]在EditText框中达到大小限制后防止用户插入更多字符[重复]
【发布时间】:2014-05-04 21:37:45
【问题描述】:

我想阻止用户在包含编辑文本实例的警报对话框中插入超过一定数量的字母。我尝试使用输入过滤器。长度过滤器,但仅显示达到请求长度的字符串。用户仍然可以写更多字符,例如,当我尝试删除字符时,直到我删除足够多的字符以使单词短于限制(类似键盘记住键)之前,什么都不会发生。

编辑: 更清楚地说,我已经尝试过使用 InputFilter。这确实强制了传递给 EditText 的字符串大小,但正如我所说,我仍然可以继续使用键盘编写未显示在文本框中的字母。当我点击删除时,它首先删除了多余的字母,只有在删除了足够多的字母后,我才开始看到文本框中的字母被删除。我要求的场景:将字符串限制设置为 10。在我的键盘上击中 15 个字符。然后按退格键,看到文本框中的最后一个字母被删除。 我希望这现在更清楚了。

有人可以帮忙吗?

【问题讨论】:

  • 我知道这已经一岁了,但我想弄清楚在这种情况下是否也有什么可以做的。我猜没有,因为每个键盘都处理预览显示本身,但也许有一些东西。由于预览与 EditText 中的实际内容之间存在差异,这绝对看起来像是一个奇怪的用户体验。

标签: android android-edittext android-alertdialog


【解决方案1】:

您可以在 AndroidManifest.xml 中使用 EditText 的以下属性

android:maxLength="8"

现在用户不能在 EditText 中添加超过 8 个字符。

【讨论】:

    【解决方案2】:

    您也可以在运行时通过分配设置此属性

    youredittext.setMaxLength(8);
    

    你告诉过你在警告对话框中有你的编辑文本,所以在运行时设置它并试一试。

    【讨论】:

      【解决方案3】:

      SEE THIS

      TextView editEntryView = new TextView(...);
      InputFilter[] filterArray = new InputFilter[1];
      filterArray[0] = new InputFilter.LengthFilter(8);
      editEntryView.setFilters(filterArray);
      

      【讨论】:

        【解决方案4】:

        请参阅此答案以获得部分解决方法:https://stackoverflow.com/a/19222238/933656

        您将能够立即删除 EditText 中的最后一个字符,因为没有要显示的键盘预览(假设所有第三方键盘都尊重 textNoSuggestions 标志)。唯一的问题是您丢失了建议文本。

        【讨论】:

          【解决方案5】:

          可能为时已晚,但如果有人遇到同样的问题。

          在布局中:

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

          以编程方式:

          setFilters(new InputFilter[]{new InputFilter.LengthFilter(20)});
          setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2018-12-08
            • 2010-11-27
            • 2016-01-06
            • 1970-01-01
            • 2018-08-02
            • 2015-08-07
            相关资源
            最近更新 更多