web-dev-qa-db-fra.com

Android: bouton Modifier le texte

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!

56
Corey Alexander

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.

131
Niall Sheridan

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.

0
adamp