Как программно скрыть экранную клавиатуру в 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.