アクションボタン
AndroidのEditText
にフォーカスしたとき表示されるキーボードの右下のキーをアクションボタンと言う。
複数行テキストボックスのアクションボタンは改行
アクションボタンはフォーカスしているEditText
が改行を許可している場合(複数行の場合)は改行キーとなる。
1行テキストボックスのアクションボタンの変更方法
1行のテキストボックスにするにはEditText
のプロパティとしてandroid:singleLine="true"
を指定する。
<EditText
...
android:singleLine="true"
... />
この状態でandroid:imeOptions
プロパティを指定すると別のボタンに変更できる。
例えばandroid:imeOptions="actionNext"
を指定すると次のテキストボックスへフォーカスを移動するボタンに変更できる。
<EditText
...
android:singleLine="true"
android:imeOptions="actionNext"
... />
アクションボタンの動的変更
Kotlinのコードで動的に変更するにはEditText
のimeOptions
プロパティを更新する。
imeOptions
プロパティはEditorInfoのIME_ACTION_*
の中から選択する。
例えば、EditorInfo.IME_ACTION_DONE
を指定した場合は
editText.imeOptions = EditorInfo.IME_ACTION_DONE
以下のようにチェックマークのボタンとなる。
イベントリスナでどのタイプのボタンを押されたかを判断する
アクションボタンを入力したときに、どのアクションボタンだったかを判断するにはEditText#setOnEditorActionListener
で受け取って調べる。
setOnEditorActionListener
に渡す無名関数の第2引数がimeOptions
で指定した値となっているので
例えば以下のように受け取れる。
editText.setOnEditorActionListener {_, actionId, _ ->
when (actionId) {
EditorInfo.IME_ACTION_DONE -> {
println("done")
true
}
EditorInfo.IME_ACTION_NEXT -> {
println("next")
true
}
else -> {
println("otherwise")
true
}
}
}
\確かな知識を身に着けたい、Androidアプリ開発を学びたい人にオススメ!/