【Kotlin/Android】Viewにフォーカスを当ててキーボードを表示させる方法!

この記事からわかること
- Kotlin/Android StudioでViewにフォーカスを当ててキーボードを表示させる方法
- requestFocusメソッドの使い方
- getSystemService/showSoftInputの使い方
index
[open]
\ アプリをリリースしました /
今回はViewにフォーカスを当ててキーボードを表示させる方法をまとめていきます。例としてボタンをタップした際にフォーカスを当ててキーボードを表示できるようにしていきます。
Viewにフォーカスを当てる方法
Android Studioで表示しているViewにフォーカスを当てるにはrequestFocus
メソッドを使用します。これはViewから呼び出します。
editText.requestFocus()
しかしこれだけではEditTextにフォーカスが当たったのみでキーボードが表示されません。
キーボードを表示させる方法
キーボードを表示させるにはgetSystemService
とshowSoftInput
メソッドを使用します。
val imm = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
imm.showSoftInput(editText,0)
showSoftInput
メソッドの引数には適応させたいViewを渡します。
全体のコード
以下は全体のコードです。XML側にButtonとEditTextを配置しておいてください。
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val button:Button = findViewById(R.id.button)
button.setOnClickListener {
clickHandlerFunction(it)
}
}
public fun clickHandlerFunction(viewThatIsClicked: View) {
var editText:EditText = findViewById(R.id.editText)
editText.requestFocus()
val imm = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
imm.showSoftInput(editText,0)
}
}
まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。