93

我在 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 个字符时,按下退格/删除以外的东西时什么都不会发生?

4

8 回答 8

107

Android中EditText的限制文本长度可能重复

采用android:maxLength="140"

那应该行得通。:)

希望有帮助

于 2012-08-23T00:53:32.323 回答
45

我有同样的问题。

这是一个解决方法

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

感谢我如何关闭 EditText 中的建议?

于 2013-10-07T10:17:44.820 回答
17
EditText editText= ....;
InputFilter[] fa= new InputFilter[1];
fa[0] = new InputFilter.LengthFilter(8);
editText.setFilters(fa);
于 2015-12-14T06:47:06.733 回答
8

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

android:inputType="textFilter"

到你的EditText.

于 2016-01-29T17:23:22.923 回答
6

你可以试试这个

 EditText et = (EditText) findViewById(R.id.myeditText);
    et.setFilters(new InputFilter[]{ new InputFilter.LengthFilter(140) }); // maximum length is 140
于 2017-11-30T11:33:39.850 回答
2

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

android:inputType="textNoSuggestions"` 

或者

android:inputType="textFilter"

它将删除这些建议。

于 2016-09-01T09:42:30.993 回答
1

如果您想查看计数器标签,您可以使用app:counterEnabledand android: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>

不要设置app:counterMaxLengthTextInputLayout因为它会与android:maxLength文本达到大小限制后导致不可见字符的问题发生冲突。

于 2017-08-23T02:19:23.793 回答
0

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

edittext.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
于 2017-03-22T09:15:56.360 回答