Al declarar en un EditText la acción de Finalizar Acción, con el imeiOptions=»actionDone» y queremos detectar que se ha pulsado esa tecla.
Declaración del EditText
<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:imeOptions="actionDone"
android:inputType="text" />
Detectar tecla Action Done
editText1.setOnEditorActionListener { _, actionId, _ ->
if (actionId == EditorInfo.IME_ACTION_DONE) {
//@Todo Se ha pulsado la tecla ACTION_DONE
}
false
}
Extensión Kotlin EditText.done
fun EditText.onDone(callback: () -> Unit) {
setOnEditorActionListener { _, actionId, _ ->
if (actionId == EditorInfo.IME_ACTION_DONE) {
callback.invoke()
true
}
false
}
}
//Su uso
editText1.onDone { @Todo se ha pulsado la tecla ACTION_DONE }
Recursos
- Extraido de SO – Android Use Done button on Keyboard to click button