Как программно скрыть экранную клавиатуру в Android?

Чтобы закрыть или скрыть экранную клавиатуру в приложении Android программно, можно использовать класс InputMethodManager
. Вот как это сделать на Java и Kotlin:
Java
import android.app.Activity;
import android.content.Context;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
public class MainActivity extends Activity {
public void hideKeyboard() {
View view = this.getCurrentFocus();
if (view != null) {
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
}
}
}
Kotlin
import android.app.Activity
import android.content.Context
import android.view.inputmethod.InputMethodManager
fun Activity.hideKeyboard() {
val view = this.currentFocus
if (view != null) {
val imm = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
imm.hideSoftInputFromWindow(view.windowToken, 0)
}
}
Объяснение:
InputMethodManager
: Это класс, который предоставляет методы для управления методами ввода (экранными клавиатурами).getSystemService(Context.INPUT_METHOD_SERVICE)
: Этот метод используется для получения сервисаInputMethodManager
.hideSoftInputFromWindow(view.getWindowToken(), 0)
: Этот метод скрывает клавиатуру.windowToken
используется для уникальной идентификации окна.
Этот метод можно вызывать, например, когда пользователь отправляет форму или нажимает вне поля EditText
.