2014-01-15 2 views
0

У меня есть EditText, который я опорожняю после того, как в него вписано что-либо (по какой-либо причине). Я делаю это по телефону setText("")Android EditText Не звоните restartInput

Все работает нормально, если пользователь не находится в состоянии клавиатуры по умолчанию (например, состояние номера). Поскольку setText вызывает InputMethodManager.restartInput после нажатия клавиши в состоянии, отличном от состояния по умолчанию, и затем я вызываю setText(""), restartInput() вызывается, и клавиатура переключается обратно в состояние по умолчанию (в большинстве случаев состояние «ABC»).

Это очень раздражает, если пользователю нужно ввести несколько номеров или специальные символы и т. Д. Есть ли способ сделать это без вызова restartInput?

ответ

0

Вы можете попробовать реализовать text watcher на своем edittext. В методе onTextChanged() вы можете использовать setText(""). Вам не придется иметь дело с ImputMethodManager таким образом.

+0

Я уже использую 'TextWatcher' с' afterTextChanged', и я вызываю 'setText (" ")' там. Есть также места вне «TextWatcher», где мне нужно будет вызвать 'setText (" ")', чтобы это не сработало. – Eliezer

Смежные вопросы