Android EditText最大长度

时间:2012-08-23 00:23:41

标签: 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>

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

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

8 个答案:

答案 0 :(得分:98)

Limit text length of EditText in Android

可能重复

使用android:maxLength="140"

那应该有用。 :)

希望有所帮助

答案 1 :(得分:43)

我遇到了同样的问题。

这是一种解决方法

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

Thx to How can I turnoff suggestions in EditText?

答案 2 :(得分:12)

EditText editText= ....;
InputFilter[] fa= new InputFilter[1];
fa[0] = new InputFilter.LengthFilter(8);
editText.setFilters(fa);

答案 3 :(得分:5)

我遇到了同样的问题。当你添加它时它完全正常:

android:inputType="textFilter"

EditText

答案 4 :(得分:2)

您可以尝试

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

答案 5 :(得分:1)

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

请勿app:counterMaxLength上设置TextInputLayout因为它会与android:maxLength冲突,导致在文本达到大小限制后出现隐形字符问题。< / p>

答案 6 :(得分:0)

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

android:inputType="textNoSuggestions"` 

android:inputType="textFilter"

它将删除这些建议。

答案 7 :(得分:0)

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

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