Intereting Posts
Как начать работу по истечении определенного периода времени? Как запрограммировать обнаружение профиля энергии устройства SONY – Stamina ON Как добавить изображение значка в качестве подсказки для EditBox в Android Как синхронизировать время ядра и время логарифма? «Дооснащение» неспособно создать адаптер вызова Программно получить время оператора сети (Android) Ленивая выборка разбитых объектов с использованием RxJava Пользовательский макет Android для AutoCompleteTextView Android MediaPlayer мерцает при воспроизведении видео на Android 4.2.2 Не удалось запустить эмулятор в Linux Android QRCode Scanner Library Знание редактирования редактируемого текста Совместное использование изображений из внутреннего хранилища с помощью FileProvider Переопределяя метод onScroll для com.android.View в кодировании android? Нужно ли запрашивать обновления местоположения при использовании геолокаторов с плавным расположением?

Запретить отключение программной клавиатуры на кнопке обратной связи Android нажмите

У меня есть работа с edittext. Когда активность приходит, я всегда фокусирую внимание на Edittext. Я сделал экранную панель всегда видимой, давая

android:windowSoftInputMode="stateAlwaysVisible" 

В манифесте. Im делает функциональность нажатием кнопки «Готово» на клавиатуре. На самом деле моя потребность в том, что экранная клавиатура всегда должна присутствовать, когда пользователь находится в этом действии. Теперь я отключил нажатие кнопки «Назад», переопределив и ничего не делая.

 @Override public void onBackPressed() { // Do nothing } 

Но softkeyboard увольняется на заднем пульте. Как избавиться от этого. Я пробовал эту мягкую клавиатуру «Предотвращать», но все же на задней клавиатуре пресс-секретаря увольняют. Но он возвращается снова, нажимая кнопку «Назад», «Мне нужно, чтобы при нажатии на кнопку не отбрасывалась программная клавиатура. Любая помощь будет оценена по достоинству.

Solutions Collecting From Web of "Запретить отключение программной клавиатуры на кнопке обратной связи Android нажмите"

Создайте один пользовательский EditText, например, следуйте одному интерфейсу:

 public class CustomEditText extends EditText { public void setHandleDismissingKeyboard( handleDismissingKeyboard handleDismissingKeyboard) { this.handleDismissingKeyboard = handleDismissingKeyboard; } private handleDismissingKeyboard handleDismissingKeyboard; public interface handleDismissingKeyboard { public void dismissKeyboard(); } @SuppressLint("NewApi") public CustomEditText(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { super(context, attrs, defStyleAttr, defStyleRes); // TODO Auto-generated constructor stub } public CustomEditText(Context context) { super(context); // TODO Auto-generated constructor stub } public CustomEditText(Context context, AttributeSet attrs) { super(context, attrs); // TODO Auto-generated constructor stub } public CustomEditText(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); // TODO Auto-generated constructor stub } @Override public boolean onKeyPreIme(int keyCode, KeyEvent event) { if (event.getKeyCode() == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_UP) { handleDismissingKeyboard.dismissKeyboard(); return true; } return super.dispatchKeyEvent(event); } 

То в вашей активности создайте инициализацию своего CustomEditText и используйте:

 customEditText.setHandleDismissingKeyboard(this); 

Затем выполните метод класса и переопределения и поместите ваш код в это

Для получения дополнительной информации о моем ответе все, что вам нужно, это onKeyPreIme , вы можете переопределить это в своем классе EditText (как я отправляю для вас), чтобы обрабатывать все ключевые слова, такие как задний ключ или любую другую клавиатуру, я поместил один внутренний интерфейс в Пользовательский класс, чтобы получить обратный вызов из этого класса для каждого действия или класса, который вы хотите, вы также можете сделать это со статическим методом, и поскольку вы хотите предотвратить отключение клавиатуры, вы можете просто вернуть true .

Для использования CustomEditText вы можете использовать xml или java, определить это и инициализировать, как и другие виджеты (Button, TextView, …), и вам нужно только определить это в вашем xml, например:

  <yourPackage.CustomEditText ..... />