Ich habe einen Bearbeitungstext, der wie folgt definiert ist.
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:maxLines="1"
android:inputType="text"
android:hint="@string/field_text"
android:id="@+id/field"
/>
Ich möchte einen benutzerdefinierten Befehl so einstellen, dass, wenn jemand auf die Schaltfläche „Fertig/Los“ auf der Bildschirmtastatur klickt, eine Schaltfläche angeklickt wird oder einfach die Methoden ausgeführt werden, die von der Schaltfläche ausgeführt werden. Ich denke, das hat etwas mit den Optionen zu tun, aber ich konnte nicht herausfinden, wie sie funktionieren. Vielen Dank im Voraus für jede Hilfe!
Sie möchten eine Kombination aus android:imeOptions und setOnEditorActionListener
<EditText android:id="@+id/some_edittext"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:imeOptions="actionSend">
</EditText>
some_edittext.setOnEditorActionListener(new OnEditorActionListener() {
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_SEND) {
some_button.performClick();
return true;
}
return false;
}
});
Natürlich sollten Sie actionSend in die gewünschte Aktion ändern und IME_ACTION_SEND entsprechend aktualisieren.
Werfen Sie einen Blick auf die setImeActionLabel
Methode (bzw imeActionLabel
und imeActionId
Attribute) und setOnEditorActionListener
um einen Listener einzurichten, der auf die Ereignisse reagiert.