【问题标题】:Android EditText Max Length [duplicate]Android EditText最大长度[重复]
【发布时间】:2012-08-18 11:17:21
【问题描述】:

我在 EditText 字段中设置了最大文本长度。

<EditText
            android:id="@+id/courseDescriptionField"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:inputType="textMultiLine"
            android:lines="5"
            android:maxLength="@integer/max_course_description_limit"
            android:gravity="left|top" >
        </EditText>

然而,对我来说问题是,文本 STOPS 在 140 个字符之后出现,但它仍然继续输入,只是文本没有出现,但是它确实出现在“缓冲区”中(意思是建议事情)如果这就是你所说的。

作为旁注,我正在使用 TextWatcher 来跟踪限制。有没有办法完全限制文本的数量,这样当有 140 个字符时,按下退格/删除以外的东西时什么都不会发生?

【问题讨论】:

    标签: android android-edittext


    【解决方案1】:

    Limit text length of EditText in Android 可能重复

    使用android:maxLength="140"

    应该可以。 :)

    希望有帮助

    【讨论】:

    • 我有同样的问题,但这不适合我
    • 你身上发生了什么?问一个新问题并将您的代码放入其中,我会看看。把你的问题的链接放在这里,这样我就可以找到它
    • 同样的问题!有解决办法吗?
    • 我不认为这是重复的。谁能解释为什么这与使用应用程序常量相比会起作用?似乎将 char 限制作为 xml 中的值不应该改变文本缓冲区的工作方式。
    【解决方案2】:

    我遇到了同样的问题。

    这里有一个解决方法

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

    感谢How can I turnoff suggestions in EditText?

    【讨论】:

    • 按backkey的时候好像只需要textNoSuggestions来删除字母。
    • 这很奇怪,不知道google是否知道这个bug!
    • 这应该是公认的答案,只限制 maxLength 是不行的
    • 嗨,我是发布“已接受”答案的人。我同意@Nactus。这应该是公认的答案。我的回答并没有完全解决问题。
    • 这是在您不需要建议时使用的解决方法。但是,如果您需要长度限制和建议,则此方法不起作用。自从 Android 诞生以来,这个问题就一直存在,而 Google 并不关心修复它。伤心..
    【解决方案3】:
    EditText editText= ....;
    InputFilter[] fa= new InputFilter[1];
    fa[0] = new InputFilter.LengthFilter(8);
    editText.setFilters(fa);
    

    【讨论】:

    • 单行:editText.setFilters(new InputFilter[] { new InputFilter.LengthFilter(maxlength) });
    【解决方案4】:

    我遇到了同样的问题。当你添加这个时它工作得很好:

    android:inputType="textFilter"
    

    致您的EditText

    【讨论】:

      【解决方案5】:

      你可以试试这个

       EditText et = (EditText) findViewById(R.id.myeditText);
          et.setFilters(new InputFilter[]{ new InputFilter.LengthFilter(140) }); // maximum length is 140
      

      【讨论】:

        【解决方案6】:

        如果您使用 maxLength = 6 ,有时您输入的这些字符会添加到键盘顶部,称为建议。因此,当您删除输入的字母时,它会先删除建议,然后再删除EditText 中的实际文本。为此,您需要删除建议。只需添加

        android:inputType="textNoSuggestions"` 
        

        android:inputType="textFilter"
        

        它将删除这些建议。

        【讨论】:

          【解决方案7】:

          如果您想查看计数器标签,可以使用app:counterEnabledandroid:maxLength,例如:

          <android.support.design.widget.TextInputLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:counterEnabled="true">
          
            <EditText
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:maxLength="420" />
          
          </android.support.design.widget.TextInputLayout>
          

          请勿TextInputLayout 上设置app:counterMaxLength,因为它会与android:maxLength 冲突,从而导致文本达到大小限制后出现不可见字符的问题。

          【讨论】:

            【解决方案8】:

            对我来说,这个解决方案有效:

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

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2016-11-26
              • 2014-08-08
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2020-04-18
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多