Как заставить EditText с типом ввода numberDecimal отображать десятичный разделитель как , а не . в соответствии с приложением Locale?

У меня есть приложение для Android, которое должно соответствовать французской локализации, где десятичный формат для чисел должен иметь десятичный разделитель как «,», а не «.»,

Мне нужно, чтобы EditText по умолчанию разделял десятичное число с помощью «,» при вводе числа в EditText, где добавление textWatcher в каждое числовое поле не является вариантом, так как есть много числовых полей и множество локалей, в которых пользователь может запускать приложение соответствующим образом, и, соответственно, добавление текстового наблюдателя для каждой локали не является вариантом,

Что я пытаюсь сделать, так это установить приложение DecimalFormatSymbols при входе в систему в соответствии с зарегистрированной культурой, и, соответственно, все числовые элементы управления EditText должны добавлять указанный DecimalSeparator в соответствии с тем, что указано после входа в систему, через Пример: используя метод DecimalFormatSymbols.setDecimalSeparator(',') ,

Это выполнимо,

Пожалуйста, порекомендуйте!


person Yazan    schedule 16.03.2020    source источник


Ответы (1)


Обходной путь

char separator = DecimalFormatSymbols.getInstance().getDecimalSeparator();
editText.setKeyListener(DigitsKeyListener.getInstance("0123456789" + separator));
person Khaled Jubeh    schedule 14.07.2020