У меня есть Activity
с EditText
, кнопки и ListView
. Цель состоит в том, чтобы ввести экран поиска в EditText
, нажать кнопку и получить результаты поиска для заполнения этого списка.
Это все работает отлично, но виртуальная клавиатура ведет себя странно.
Если я нажимаю EditText
, я получаю виртуальную клавиатуру. Если я нажму кнопку «Готово» на виртуальной клавиатуре, она исчезнет. Однако, если я нажму кнопку поиска, прежде чем нажать «Готово» на виртуальной клавиатуре, виртуальная клавиатура останется, и я не смогу от нее избавиться. Нажатие кнопки «Готово» не закрывает клавиатуру. Она меняет кнопку «Готово» с «Готово» на стрелку и остается видимой.
Спасибо за вашу помощь
источник
inputManager.hideSoftInputFromWindow((null == getCurrentFocus()) ? null : getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
источник
Используйте код ниже
источник
Вы должны реализовать
OnEditorActionListener
для своего EditViewИ вы скрываете клавиатуру:
Вы должны также запустить скрытие клавиатуры в вашей кнопке, используя
onClickListener
Теперь нажатие «Готово» на виртуальной клавиатуре и кнопке сделает то же самое - скроет клавиатуру и выполнит действие щелчка.
источник
TextView.OnEditorActionListener
.Добавьте следующий код в событие нажатия кнопки:
источник
Поскольку у вас есть только один текст редактирования, просто вызовите действие, выполняемое для этого текста редактирования внутри вашего нажатия кнопки, а остальное обрабатывается системой. Если бы у вас было более одного редактируемого текста, это было бы не так эффективно, потому что вам нужно сначала получить сфокусированный редактируемый текст. Но в вашем случае все будет работать отлично
источник
Для активности,
Для фрагментов используйте getActivity ()
. GetActivity () getSystemService ();
. GetActivity () getCurrentFocus ();
источник
Это решение идеально подходит для меня:
источник
Попробуй это...
Для отображения клавиатуры
Для Скрыть клавиатуру
источник
источник
Пример Kotlin:
из фрагмента:
от деятельности:
источник
Вы используете этот код в вашем событии нажатия кнопки
источник
Исправление исключения нулевой точки сбоя: у меня был случай, когда клавиатура могла не открываться, когда пользователь нажимал кнопку. Вы должны написать оператор if, чтобы проверить, что getCurrentFocus () не имеет значения NULL:
источник
Если вы установили
android:singleLine="true"
, автоматически кнопка скрывает клавиатуру ¡источник