Ответ 1
Возможный дубликат Ограничить длину текста EditText в Android
Использовать android: maxLength = "140"
Это должно сработать.:)
Надеюсь, что поможет
Я установил максимальную длину текста в поле 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 символов, ничего не происходит, если что-то другое, кроме нажатия или удаления?
Возможный дубликат Ограничить длину текста EditText в Android
Использовать android: maxLength = "140"
Это должно сработать.:)
Надеюсь, что поможет
У меня была та же проблема.
Вот обходное решение
android:inputType="textNoSuggestions|textVisiblePassword"
android:maxLength="6"
спасибо to Как я могу отклонить предложения в EditText?
EditText editText= ....;
InputFilter[] fa= new InputFilter[1];
fa[0] = new InputFilter.LengthFilter(8);
editText.setFilters(fa);
У меня была та же проблема. Он отлично работает, когда вы добавляете это:
android:inputType="textFilter"
на ваш EditText
.
Если вы использовали maxLength = 6
, то несколько раз, когда вы вводите эти символы, в верхней части клавиатуры добавляются предложения. Поэтому, когда вы удаляете введенные буквы в это время, сначала удаляются предложения, а затем фактический текст внутри EditText
. Для этого вам нужно удалить предложения. Просто добавьте
android:inputType="textNoSuggestions"`
или
android:inputType="textFilter"
Он удалит эти предложения.
Для меня это решение работает:
edittext.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
Если вы хотите увидеть метку счетчика, вы можете использовать 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
, что приведет к проблеме невидимых символов после того, как текст достигнет предела размера.
Вы можете попробовать это
EditText et = (EditText) findViewById(R.id.myeditText);
et.setFilters(new InputFilter[]{ new InputFilter.LengthFilter(140) }); // maximum length is 140