我在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个字符时,如果按下退格/删除以外的其他内容没有任何反应?
答案 0 :(得分:98)
答案 1 :(得分:43)
我遇到了同样的问题。
这是一种解决方法
android:inputType="textNoSuggestions|textVisiblePassword"
android:maxLength="6"
答案 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:counterEnabled
和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: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);