Android — запятая в качестве десятичного разделителя на цифровой клавиатуре

Нам нужна цифровая клавиатура для EditText. Клавиатура должна иметь десятичный разделитель в зависимости от выбранной локали устройства. Мы реализовали это, установив для пользовательского DigitsKeyListenerзначение EditText

public class NumericDigitsKeyListener extends DigitsKeyListener {


    @Override
    protected char[] getAcceptedChars() {

        char[] acceptedCharacters = null;

            acceptedCharacters =  new char[] {
                    '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
                    new DecimalFormatSymbols(Locale.getDefaultLocale()).getDecimalSeparator()

        return acceptedCharacters;
    }

    /**
     * @see android.text.method.DigitsKeyListener#getInputType()
     */
    public int getInputType() {
        return InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL;
    }

. Вышеупомянутое работает нормально для большинства устройств, однако для Samsung Galaxy S-II программная клавиатура не имеет запятой в клавиатура. Клавиатура swype устройства отображает запятую, а стандартная нет.

Я попытался переопределить DigitsKeyListener, как упоминалось здесь

Есть ли способ заставить все устройства иметь запятую (когда применимо или даже всегда) на цифровой клавиатуре?

8
задан Community 23 May 2017 в 12:15
поделиться