アクションボタン
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アプリ開発を学びたい人にオススメ!/
