Android ソフトキーボードをプログラムで閉じたり非表示にしたりするにはどうすればよいですか? 質問する

Android ソフトキーボードをプログラムで閉じたり非表示にしたりするにはどうすればよいですか? 質問する

レイアウトにEditTextと があります。Button

編集フィールドに入力して をクリックした後、Buttonキーボードの外側をタッチすると仮想キーボードが非表示になるようにしたいです。これを実現する簡単な例を教えていただけますか?

ベストアンサー1

Androidで仮想キーボードを非表示にするには、入力メソッドマネージャー、呼び出しhideSoftInputFromWindowフォーカスされたビューを含むウィンドウのトークンを渡します。

// Check if no view has focus:
View view = this.getCurrentFocus();
if (view != null) {  
    InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
    imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
}

これにより、あらゆる状況でキーボードが強制的に非表示になります。場合によっては、InputMethodManager.HIDE_IMPLICIT_ONLYユーザーが明示的にキーボードの表示を強制しなかった場合 (メニューを押したままにするなど) のみキーボードを非表示にするために、2 番目のパラメータとして渡す必要があります。

注:これを Kotlin で実行する場合は、以下を使用します。context?.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager

Kotlin 構文

// Only runs if there is a view that is currently focused
this.currentFocus?.let { view ->
    val imm = getSystemService(Context.INPUT_METHOD_SERVICE) as? InputMethodManager
    imm?.hideSoftInputFromWindow(view.windowToken, 0)
}

おすすめ記事