Intereting Posts
Зависимости компонентов Dagger 2 Intellij Idea log GradleConnectionException: не удалось выполнить сборку с использованием установки Gradle при построении Сколько типов контекста в android и что лучше использовать Разница между View и ViewGroup в Android «Отсутствует атрибут contentDescription на изображении» в XML Как заменить фрагмент внутри ViewPager, используя PagerAdapter? Android: EditText в выпуске ListView Android: Поведение launchMode = "singleTask" не так, как описано? Некоторые сторонние виджеты перестают обновляться после обновления приложения. Как разрешить UnsupportedOperationException Требуемый метод destroyItem не был переопределен Что действительно означает Debug.getNativeHeapFreeSize Как установить приложение apk с моего компьютера на мой мобильный Android Как вставить javascript-скрипт в веб-просмотр до загрузки html в android 7 Есть ли причина использовать Google GCM против обмена сообщениями Apple для push-уведомлений? Поведение домашнего ключа

Edittext.settext () изменяет тип клавиатуры по умолчанию

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

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? Toggel), и после ввода некоторого номера клавиатура возвращается на ABC. Этот кодовый шов отлично работает на устройствах sam3 s3 и sywpe, но не на Nexus с L и HTC одним

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

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

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

Solutions Collecting From Web of "Edittext.settext () изменяет тип клавиатуры по умолчанию"

Finnaly получил его работу, пришлось объединить несколько решений, упомянутых в комментариях выше

Поскольку виновный был установленным текстом, я нашел замену для него – добавьте

Но для использования append мне пришлось очистить edittext без использования settext, эта ссылка на спасение

Поэтому заменен

 cardNumberEditText.setText(formattedNumber); 

с

 cardNumberEditText.getText().clear(); cardNumberEditText.append(formattedNumber); 

Теперь работает как шарм