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