【Kotlin/Android Studio】キーボードを閉じる方法!InputMethodManager
この記事からわかること
- Android Studioでキーボードを閉じる方法
- ActivityやFragmentで実装する方法
- InputMethodManagerやgetSystemServiceメソッドとは?
index
[open]
\ アプリをリリースしました /
環境
- Android Studio:Flamingo
- Kotlin:1.8.20
EditTextなどのキーボードを閉じる方法
表示されているキーボードを閉じるにはgetSystemServiceメソッドでInputMethodManagerクラスを取得しhideSoftInputFromWindowメソッドを使用します。
val editText:EditText = findViewById(R.id.edit_text)
val imm = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
imm.hideSoftInputFromWindow(editText.windowToken, 0)
このコードはActivityに設置した際のコードです。
Fragmentに設置する
Fragmentに設置する場合は以下のように記述可能です。変わっているのはgetSystemServiceメソッドの呼び出しがrequireContextから呼び出されているところです。またhideSoftInputFromWindowの引数にもview?を指定するだけで行けます。
val imm = requireContext().getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
imm.hideSoftInputFromWindow(view?.windowToken, 0)
getSystemServiceメソッドとは?
getSystemServiceメソッドはAndroidアプリ内でSystem Serviceを取得するためのメソッドです。キーボードを閉じる処理だけでなく、アラーム機能の管理やインターネットの接続状況の取得などシステムに関する処理を実行することが可能になっています。
public abstract Object getSystemService(String name);
引数には使用したいシステムの識別文字列を渡します。
InputMethodManagerとは?
InputMethodManagerはソフトウェアキーボードの制御に関連する機能を提供するクラスです。キーボードの表示/非表示やモード(テキストや数値のみなど)、IME(Input Method Editor)の制御などが可能になっています。
まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。






