114 votes

Soumettre implicitement après avoir appuyé sur Done sur le clavier à la dernière EditText

J'ai utilisé certaines applications où lorsque je saisis mon nom d'utilisateur, puis passe à mon mot de passe, si je touche "Terminé" sur le clavier, le formulaire de connexion est automatiquement soumis, sans que je n'aie à cliquer sur le bouton de soumission. Comment est-ce fait ?

2voto

jQuick Points 31

Il suffit d'étendre cette réponse

fun EditText.onSubmit(func: () -> Unit) {
    setOnEditorActionListener { _, actionId, _ ->
        if (actionId == EditorInfo.IME_ACTION_DONE) {
            clearFocus() // si nécessaire
            hideKeyboard()
            func()
        }
        true
    }
}

fun EditText.hideKeyboard() {
    val imm = context.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
    imm.hideSoftInputFromWindow(this.windowToken, 0)
}

1voto

Senthil JS Points 27

Ajoutez la ligne suivante dans edittext

android:imeOptions="actionDone"

Bon codage

1voto

Rabia Aydoğdu Points 21
etParola = (EditText) findViewById(R.id.etParola); 
 btnGiris = (Button) findViewById(R.id.btnGiris);
  etParola.setOnEditorActionListener(new EditText.OnEditorActionListener() {
            @Override
            public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
                if (actionId == EditorInfo.IME_ACTION_DONE) {
                    btnGiris.performClick();
                    return true;
                }
                return false;
            }
        });

 et;

layout xml etParola
android:imeOptions="actionDone" add

0voto

Amit Gupta Points 4617

Dans le fichier java

EditText userNameField = (EditText) findViewById(R.id.signinscr_userName);
EditText passwordField = (EditText) findViewById(R.id.signinscr_password);

passwordField.setOnEditorActionListener(new OnEditorActionListener() {
    public boolean onEditorAction(TextView arg0, int arg1, KeyEvent arg2) {
        //Effectuez votre opération ici.
        return false;
    }
});

0voto

 EditText edit_txt = (EditText) findViewById(R.id.search_edit);

 edit_txt.setOnEditorActionListener(new EditText.OnEditorActionListener() {
     @Override
     public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
// vous avez défini une imeoption
         if (actionId == EditorInfo.IME_ACTION_DONE) {
             submit_btn.performClick();
             return true;
         }
         return false;
     }
 });

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X