Android EditText最大长度

Jon*_*Wei 85 android android-edittext

我在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>
Run Code Online (Sandbox Code Playgroud)

然而,问题是,文本STOPS出现在140个字符之后,但它仍然继续输入,除了文本没有出现,但是,它确实出现在"缓冲区"(意思是建议事物)中这就是你所说的.

作为旁注,我使用TextWatcher来跟踪限制.有没有办法完全限制文本的数量,所以当有140个字符时,按下退格/删除以外的其他内容时没有任何反应?

Ush*_*doo 102

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

使用 android:maxLength="140"

这应该工作.:)

希望有所帮助

  • 我不认为这是重复的.任何人都可以解释为什么这会比使用app常量更有用吗?似乎将char限制作为xml中的值不应该更改文本缓冲区的工作方式. (7认同)
  • 我有同样的问题,但这对我不起作用 (2认同)

mrr*_*aat 43

我有同样的问题.

这是一个解决方法

android:inputType="textNoSuggestions|textVisiblePassword"
android:maxLength="6"
Run Code Online (Sandbox Code Playgroud)

Thx to 如何在EditText中关闭建议?

  • 嗨,我是发布"已接受"答案的人.我同意@Nactus.这应该是公认的答案.我的答案并没有完全解决问题. (5认同)
  • 这是您不需要建议时使用的解决方法。但是,如果您同时需要长度限制和建议,这将不起作用。这个问题自 Android 出现以来就存在,谷歌并不关心修复它。伤心.. (4认同)
  • 这应该是可接受的答案,限制maxLength只是不这样做 (2认同)

Sam*_*ami 16

EditText editText= ....;
InputFilter[] fa= new InputFilter[1];
fa[0] = new InputFilter.LengthFilter(8);
editText.setFilters(fa);
Run Code Online (Sandbox Code Playgroud)

  • 单行:`editText.setFilters(new InputFilter [] {new InputFilter.LengthFilter(maxlength)});` (2认同)

小智 6

你可以试试这个

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


Ake*_*Jha 5

我有同样的问题.当你添加它时它完全正常:

android:inputType="textFilter"
Run Code Online (Sandbox Code Playgroud)

到你的EditText.