Android rileva la pressione del tasto Fine per la tastiera su schermo


111

È possibile rilevare quando è Donestato premuto il tasto della tastiera su schermo?

Risposte:


276

Sì, è possibile:

editText = (EditText) findViewById(R.id.edit_text);

editText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
    @Override
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
        if (actionId == EditorInfo.IME_ACTION_DONE) {
            // do your stuff here
        }
        return false;
    }
});

Nota che dovrai importare le seguenti librerie:

import android.view.KeyEvent;
import android.view.inputmethod.EditorInfo;
import android.widget.TextView;

Grazie, mi hai dato un ottimo punto di partenza. Ho solo bisogno di usare EditorInfo.IME_ACTION_SEARCHil pulsante di ricerca dell'obiettivo.
TechNyquist

Ciao, è possibile con ButterKnife? @ Mikeyaworski @ SzabolcsBerecz
Maulik Dodia

1
@MaulikDodia Puoi usare @OnEditorAction () di Butterknife
Ridcully

Grazie. Lo farò con esso @ Ridcully
Maulik Dodia

3

Le informazioni sull'editor sono le classi più utili quando devi gestire qualsiasi tipo di input dell'utente nella tua applicazione Android. Ad esempio, nelle operazioni di accesso / registrazione / ricerca possiamo usarlo per un input da tastiera più accurato. Una classe di informazioni sull'editor descrive diversi attributi per l'oggetto di modifica del testo che un metodo di input comunicherà direttamente con il contenuto del testo di modifica.

Puoi provare con IME_ACTION_DONE .

Questa azione esegue Doneun'operazione per nulla da inserire e IMEverrà chiusa.

Utilizzo di setOnEditorActionListener

EditTextObj.setOnEditorActionListener(new TextView.OnEditorActionListener() {
    @Override
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
        boolean handled = false;
        if (actionId == EditorInfo.IME_ACTION_DONE) {
            /* Write your logic here that will be executed when user taps next button */
            handled = true;
        }
        return handled;
    }
});

Come gestire lo stesso problema con la tastiera personalizzata?
Gaju Kollur

0

Usando Butterknife puoi farlo

@OnEditorAction(R.id.signInPasswordText)
boolean onEditorAction(TextView v, int actionId, KeyEvent event){
    if (actionId == EditorInfo.IME_ACTION_DONE || event.getKeyCode() == KeyEvent.KEYCODE_ENTER) {
        /* Write your logic here that will be executed when user taps next button */
    }
    return false;
}
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.