Android EditText Max Length [duplicate]

2019-01-17 05:05发布

This question already has an answer here:

I set up a max length of text in an EditText field.

<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>

The problem for me however is, that, text STOPS appearing after 140 characters, but it still continues to type, except that text just doesn't appear, but however, it does appear in the "buffer" (meaning the suggestion thing) if that's what you would call it.

As a side note, I am using a TextWatcher to keep track of the limit. Is there any way to completely limit the amount of text, so that when there are 140 characters, nothing happens when something other than backspace/delete is pressed?

8条回答
甜甜的少女心
2楼-- · 2019-01-17 05:41

I had the same problem.

Here is a workaround

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

Thx to How can I turnoff suggestions in EditText?

查看更多
仙女界的扛把子
3楼-- · 2019-01-17 05:46

I had the same problem. It works perfectly fine when you add this:

android:inputType="textFilter"

to your EditText.

查看更多
\"骚年 ilove
4楼-- · 2019-01-17 05:48
EditText editText= ....;
InputFilter[] fa= new InputFilter[1];
fa[0] = new InputFilter.LengthFilter(8);
editText.setFilters(fa);
查看更多
▲ chillily
5楼-- · 2019-01-17 05:57

You may try this

 EditText et = (EditText) findViewById(R.id.myeditText);
    et.setFilters(new InputFilter[]{ new InputFilter.LengthFilter(140) }); // maximum length is 140
查看更多
地球回转人心会变
6楼-- · 2019-01-17 05:57

If you want to see a counter label you can use app:counterEnabled and android:maxLength, like:

<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>

DO NOT set app:counterMaxLength on TextInputLayout because it will conflict with android:maxLength resulting into the issue of invisible chars after the text hits the size limit.

查看更多
beautiful°
7楼-- · 2019-01-17 05:57

For me this solution works:

edittext.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
查看更多
登录 后发表回答