Меню

Android maxlength не работает

android EditText maxLength не работает

Он также не работает с этим кодом

MaxLenth не работает, я не знаю почему, но это не так.
Я проверил другие ответы в стеке, но они тоже не работают.
Пожалуйста, проверьте, не конфликтуют ли какие-либо атрибуты EditText или в чем проблема?

РЕДАКТИРОВАТЬ: с такой же проблемой сталкиваются другие разработчики
См. Комментарии здесь с той же проблемой сталкиваются манси и aat
И здесь, в комментариях, с той же проблемой сталкиваются Винси и Райзер

РЕДАКТИРОВАТЬ: проблема решена
Я использовал фильтр ввода, который переопределяет максимальную длину в xml, поэтому он не может работать.
Причина, по которой у меня не работал входной фильтр, заключалась в том, что я использовал другой входной фильтр, который перезаписывал предыдущий входной фильтр maxLength.
Внесение этого в единый входной фильтр устранило эту проблему для меня.

6 ответов

Довольно старый пост, но я заметил, что XML является реальным объектом EditText , в то время как вы добавляете фильтры к TextView , которые могут обрабатывать его иначе, чем EditText . Если вы добавляете объект InputFilter вручную, свойство xml переопределяется.

Пример кода, в котором вы добавляете InputFilter к View , кажется, объектом TextView . Убедитесь, что вы выбрали правильный вид, и он транслируется на EditText , если вы используете ручное добавление фильтров — сейчас это работает для меня.

Вам нужно получить список существующих фильтров, таких как maxLength, применяемых через XML, а затем добавить к нему дополнительные фильтры. В вашем случае свойство maxLength editText было переопределено настраиваемым InputFilter, который вы пытались применить.

Чтобы добавить ограничение на количество символов, а также ограничение на ввод.

Позволяет вам установить как ограничение максимальной длины, так и ограничения ваших специальных символов в одном и том же InputFilter, и поэтому вам не нужно создавать отдельный Inputfilter для одного и того же.

Если у вас уже есть InputFilter, maxLength работать не будет. Вам нужно будет создать дополнительный InputFilter и добавить его:

Если вы используете InputFilter для редактирования текста, maxLength не будет работать.

Попробуйте это, он будет работать как для максимальной длины, так и для входного фильтра

Источник

Android EditText maxLength не работает

Он также не работает с использованием этого кода

MaxLenth не работает, я не знаю почему, но это не так.
Я проверил другие ответы в стеке, но они также не работают.
Проверьте, не конфликтует ли какой-либо из атрибутов EditText или в чем проблема?

EDIT: с той же проблемой сталкиваются другие разработчики
См. Комментарии здесь, с той же проблемой сталкиваются манси и аат
И здесь, в комментариях, к этой проблеме сталкиваются Винчи и Райзер

EDIT: проблема решена
Я использовал фильтр ввода, который переопределяет максимальную длину в xml, что делает невозможным работу.
По умолчанию входной фильтр не помог мне в том, что я использовал другой входной фильтр, который перезаписывает предыдущий входной фильтр maxLength.
Включение этого фильтра в один вход фиксировало эту проблему для меня.

Довольно старая почта, но я заметил, что XML является фактическим объектом EditText , в то время как вы добавляете фильтры в TextView которые могут обрабатывать его иначе, чем EditText . Если вы добавляете объект InputFilter вручную, свойство xml переопределяется.

Читайте также:  Телевизор dexp f55d8000k как настроить 20 цифровых каналов

Код примера, по которому вы добавляете InputFilter s в View кажется, является объектом TextView . Удостоверьтесь, что вы вытащили нужный вид, и его EditText к EditText если вы переходите к ручному добавлению фильтров – он работает для меня прямо сейчас.

Если вы используете InputFilter для edittext, то maxLength не будет работать.

Попробуйте это, он будет работать как для maxlenght, так и для входного фильтра

Источник

Ограничить длину текста EditText в Android

Каков наилучший способ ограничить длину текста EditText в Android?

Есть ли способ сделать это через xml?

Используйте входной фильтр, чтобы ограничить максимальную длину текстового вида.

Примечание для людей, которые уже используют настраиваемый фильтр ввода, а также хотят ограничить максимальную длину:

Когда вы назначаете входные фильтры в коде, все ранее установленные фильтры ввода очищаются, включая один набор с андроидом: maxLength. Я нашел это при попытке использовать настраиваемый фильтр ввода, чтобы предотвратить использование некоторых символов, которые мы не разрешаем в поле пароля. После установки этого фильтра с помощью setFilters maxLength больше не наблюдалось. Решение заключалось в том, чтобы программно настроить maxLength и мой пользовательский фильтр. Что-то вроде этого:

Только для Android:

Для кого-то еще интересно, как этого добиться, вот мой расширенный класс EditTextNumeric .

.setMaxLength(int) – устанавливает максимальное количество цифр

.setMaxValue(int) – ограничение максимального целочисленного значения

.setMin(int) – предельное минимальное целое значение

.getValue() – получить целочисленное значение

Разумеется, все остальные методы и атрибуты, которые применяются к EditText , тоже работают.

Из-за наблюдения goto10 я собрал следующий код для защиты от потери других фильтров с установкой максимальной длины:

Другим способом в XML-файле.

android:maxLength=»6″ ограничивает длину EditText до 6 символов.

Это настраиваемый класс EditText, который позволяет фильтру продолжительности жить вместе с другими фильтрами. Благодаря ответу Тима Галлахера (см. Ниже)

Источник

EditText maxLines not working — user can still input more lines than set

User can input more than 5 lines, by pressing enter/next row key. How can I limit user input to fixed amount of rows with EditText?

20 Answers 20

You just need to make sure you have the attribute «inputType» set. It doesn’t work without this line.

The attribute maxLines corresponds to the maximum height of the EditText , it controls the outer boundaries and not inner text lines.

This does not solve the general issue of limiting to n lines. If you want to limit your EditText to take just 1 line of text, this can be very easy.
You can set this in the xml file.

@Cedekasem you are right, there isn’t a built in «row limiter». But I did built one my self, so if anyone is interested the code is below. Cheers.

I did something like you guys have been looking for. Here’s my LimitedEditText class.

  • you can limit lines count in your LimitedEditText component
  • you can limit characters count in your LimitedEditText component
  • if you exceed the limit of characters or lines somewhere in the middle of text, cursor
    won’t bring you to the end — it will stay where have you been.
Читайте также:  Сколько вам надо денег чтобы не работать

Im turning off listener, because every call of setText() method would recursively call these 3 callback methods in case when user exceeded characters or lines limit.

I’ve made simpler solution for this 😀

You can change the value of 3 in txtSpecialRequests.getLineCount() > 3 to your needs.

Here is a InputFilter that limits allowed lines in EditText:

To add it to EditText:

set editText android:inputType=»text»

This is what i used in my project:

And it worked in all scenarios

You can limit your text according to your no of lines i say around 37 alphabets in one line

this is one approach. Might help someone.

This is an extension of Indrek Kõue answer to Kotlin

getLineCount() is one option; if you want non-zero values there make sure your view is measured. For soft keyboard onKeyListener won’t work so you have to add addTextChangedListener() that will track text changes as you type. As soon as you get enough lines inside its call backs do whatever you want to limit it: delete characters with getText(), setText() or something more fancy. You can even limit the number of characters using a filter.

Another option is to monitor size of the text with getLineBounds(). This will interact with text gravity/paddign so be careful.

For limit number of characters we can simply use maxLength property of EditText as it will not allow user to enter more characters.

Another way to limit your EditText to one line is the following:

Note that after applying this transformation method, the enter key creates spaces when pressed. That still satisfies TS’ question.

Another idea: each time after typing, new text would be saved to a String lastText, only if the number of lines does not exeed the MAX_LINES. If it does, we would set the text of EditText to the last added text (so the changes would be deleted) and notify user to keep it short.

Источник

android EditText maxLength не работает

Также он не работает с использованием этого кода

maxLenth не работает, я не знаю почему, но это не так.
Я проверил другие ответы в стеке, но они также не работают.
Пожалуйста, проверьте, не конфликтует ли какой-либо из атрибутов EditText или в чем проблема?

EDIT: с такой же проблемой сталкиваются и другие разработчики
Смотрите комментарии здесь с такой же проблемой сталкиваются манси и ААТ
И вот в комментариях та же проблема стоит перед Винси и Райзером

EDIT: проблема решена
Я использовал входной фильтр, который переопределяет максимальную длину в xml, что делает его неспособным работать.
Причина, по которой входной фильтр не работал для меня, заключалась в том, что я использовал другой входной фильтр, который перезаписывает предыдущий входной фильтр maxLength.
Превращение его в один входной фильтр исправило эту проблему для меня.

Читайте также:  Блютуз наушники не работает микрофон виндовс 10

6 ответов

У меня есть следующий EditText , где я установил максимальный лимит символов на 10, но почему-то он не работает. Он принимает более 10 символов.

Попробуйте это, он будет работать как для maxlenght, так и для входного фильтра

Довольно старый пост, но я заметил, что XML является фактическим объектом EditText , в то время как вы добавляете фильтры к TextView , которые могут обрабатывать его иначе, чем EditText . Если вы добавляете объект InputFilter вручную, свойство xml переопределяется.

Пример кода, в котором вы добавляете InputFilter s к View , кажется объектом TextView . Убедитесь, что вы выбрали правильный вид, и он будет приведен к EditText , если вы пойдете с ручным добавлением фильтров-это работает для меня прямо сейчас.

Если вы используете InputFilter для редактируемого текста, то maxLength не будет работать.

Если у вас уже есть InputFilter, то maxLength не будет работать. Вам нужно будет создать дополнительный InputFilter и добавить его:

Вам нужно получить список существующих фильтров, таких как maxLength, примененных через XML, а затем добавить в него дополнительные фильтры. В вашем случае свойство maxLength editText было переопределено пользовательским InputFilter, который вы пытались применить.

Чтобы добавить ограничение символов, а также ограничение ввода.

позволяет установить как ограничение максимальной длины, так и ограничения на специальные символы как в одном и том же InputFilter, и поэтому вам не нужно создавать отдельный входной фильтр для одного и того же.

У меня есть проблема, когда этот EditText полностью игнорирует мой maxLength. Это ограничение длины EditText (maxLength=2) работает только частично. Похоже, что пользователь не может ввести больше 2 символов, потому что.

Похожие вопросы:

Я уже установил атрибут maxLength для виджета EditText в файле макета xml, и он действительно ограничивает отображение символов. Но он по-прежнему позволяет пользователю нажимать больше букв на.

Может быть, на этот вопрос уже есть ответ, но я не могу найти его на SO. У меня есть очень простое требование: ограничить длину символов в EditText. Для этого я использую тег maxLength в xml. Самое.

У меня есть поле ввода, а также мне нужно, чтобы пользователь не набирал больше разрешенного символа. Он работает в браузере. Но не работает на.

У меня есть следующий EditText , где я установил максимальный лимит символов на 10, но почему-то он не работает. Он принимает более 10 символов. Это ограничение длины EditText.

этот код не работает, я начал разработку android 1 час назад 🙂 Button btn = (Button) findViewById(R.id.button); final EditText edt = (EditText) findViewById(R.id.editText);.

Я хотел бы программно установить свойство maxLength EditText , так как я не хочу устанавливать его в файле макета. Я не вижу никакого метода набора, связанного с maxLength .

Как мы знаем, maxLength для EditText устанавливается: android:maxLength=19 или программно. Мой вопрос заключается в том, как я могу удалить этот maxLength программно, если он был установлен на.

Источник

Adblock
detector