Je sais que cette question est ancienne, mais je tiens à souligner ce qui a fonctionné pour moi.
J'ai essayé d'utiliser l'exemple de code de la Site web des développeurs Android (montré ci-dessous), mais ça n'a pas marché. J'ai donc vérifié la classe EditorInfo, et j'ai réalisé que la valeur entière IME_ACTION_SEND était spécifiée en tant que 0x00000004
.
Exemple de code provenant de développeurs Android :
editTextEmail = (EditText) findViewById(R.id.editTextEmail);
editTextEmail
.setOnEditorActionListener(new OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId,
KeyEvent event) {
boolean handled = false;
if (actionId == EditorInfo.IME_ACTION_SEND) {
/* handle action here */
handled = true;
}
return handled;
}
});
Donc, j'ai ajouté la valeur entière à mon res/values/integers.xml
fichier.
<?xml version="1.0" encoding="utf-8"?>
<resources>
<integer name="send">0x00000004</integer>
</resources>
Ensuite, j'ai modifié mon fichier de mise en page res/layouts/activity_home.xml
comme suit
<EditText android:id="@+id/editTextEmail"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:imeActionId="@integer/send"
android:imeActionLabel="@+string/send_label"
android:imeOptions="actionSend"
android:inputType="textEmailAddress"/>
Et puis, l'exemple de code a fonctionné.
1 votes
Peut-être que OnKeyboardActionListener m'aidera à trouver un exemple de code ?