J'ai un texte d'édition qui est défini comme suit.
<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"
/>
Je veux définir une commande personnalisée de sorte que lorsque quelqu'un clique sur le bouton Terminé/Aller sur le clavier à l'écran, un bouton soit cliqué ou simplement exécuter les méthodes qui sont exécutées par le bouton. Je pense que cela a quelque chose à voir avec les options ime mais je n'ai pas pu comprendre comment elles fonctionnent. Merci d'avance pour votre aide!
Vous voulez une combinaison d'Android: imeOptions et 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;
}
});
Évidemment, vous devez changer actionSend à l'action souhaitée et mettre à jour IME_ACTION_SEND en conséquence.
Jetez un œil à la méthode setImeActionLabel
(ou aux attributs imeActionLabel
et imeActionId
) et setOnEditorActionListener
pour définir un auditeur pour répondre aux événements.