edittext.settext () изменяет тип клавиатуры по умолчанию [от? 123 до ABC]

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

if (cardNumberEditText != null) {
    cardNumberEditText.addTextChangedListener(new TextWatcher() {

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
            int currSel = cardNumberEditText.getSelectionStart();
            cardNumberEditText.removeTextChangedListener(textWatcher);
            .
            .
            cardNumberEditText.setText(formattedNumber);
            .
            .
            cardNumberEditText.setSelection(currSel);
            cardNumberEditText.addTextChangedListener(textWatcher);
        }

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {
        }

        @Override
        public void afterTextChanged(Editable s) {

        }
    });
}

Итак, изначально я получаю тип ввода по умолчанию, который является ABC, теперь, когда я изменяю его на? 123 (с помощью кнопки ABC / 123 - тоггель), и после ввода некоторого числа клавиатура переключается обратно на ABC. Этот код работает хорошо на устройствах Samsung s3 и Sywpe, но не на Nexus с L и HTC One

Когда я комментирую весь код внутри onTextChanged, он работает нормально. Поэтому, когда я исследовал, я обнаружил, что виновником является cardNumberEditText.setText (formattedNumber);

Я не устанавливаю какой-либо тип ввода, я просто использую тумблер ABC /? 123 на клавиатуре для переключения

Любая помощь / предложение, почему это происходит (на нескольких устройствах) и как я могу это исправить ??

Ответы на вопрос(1)

Ваш ответ на вопрос