Невозможно ввести отрицательный знак в EditText, созданный программно

#android

#Android

Вопрос:

Я создаю EditText программно, используя эти строки кода:

 ContextThemeWrapper mContextThemeWrapper = new ContextThemeWrapper(context, R.style.AppTheme);
EditText mEditText = new EditText(mContextThemeWrapper);
mEditText.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL | InputType.TYPE_NUMBER_FLAG_SIGNED);
  

Клавиатура, которая отображается, когда я фокусируюсь на вводе, выглядит следующим образом:

введите описание изображения здесь

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

Есть идеи о том, как ввести знак минус перед моим отрицательным числом?

Редактировать 1 По-видимому, проблема связана с устройством, которое мне нужно использовать. Я использую Samsung Tablet E с Android 4.4.4. Тестирование того же EditText на другом устройстве сработало, как ожидалось, но мне нужно запустить на планшете.

Комментарии:

1. Как вы создали следующую клавиатуру? Я имею в виду, что его стиль отличается от стиля по умолчанию

2. @Marat Я создал его, используя только код, который я добавил к вопросу. Я тестирую на планшете Samsung. Не уверен, что из-за того, что он является планшетом, его расположение немного отличается, поскольку я могу перемещать клавиатуру по экрану для такого ввода чисел. Я впервые разрабатываю приложение специально для планшетов, а не для смартфонов.

3. Вы пытались протестировать на других устройствах и эмуляторе? Потому что я запустил код, который вы ввели в вопрос, и, похоже, он работает нормально.

4. @Marat, я этого не делал, но мне действительно нужно, чтобы он запускался на этом конкретном устройстве для этого клиента. Как вы выбираете знак -? Вы держите его на мгновение? Дважды щелкнуть? Или устройство, на котором вы тестировали клавиатуру, совершенно другое, и такой проблемы нет?

5. К сожалению, у меня нет планшета для тестирования. Но я запускал приложение на разных эмуляторах с разными версиями Android. Я также тестировал на своем Nexus 5x с Android 7.0, и он отлично работал на всех из них. Я бы посоветовал попробовать на любом другом эмуляторе / устройстве, чтобы узнать, связана ли проблема с приложением или самой ОС устройства

Ответ №1:

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

Решение: попробуйте сбросить настройки клавиатуры или очистить кэш / память приложения keyboard, чтобы восстановить заводские настройки по умолчанию.