【Kotlin/Android Studio】キーボードを閉じる方法!InputMethodManager
この記事からわかること
- Android Studioでキーボードを閉じる方法
- ActivityやFragmentで実装する方法
- InputMethodManagerやgetSystemServiceメソッドとは?
index
[open]
\ アプリをリリースしました /
友達や家族の誕生日をメモ!通知も届く-みんなの誕生日-
posted withアプリーチ
環境
- 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)の制御などが可能になっています。
まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。