2011-08-26 13 views
7

Bene, sto tentando di impedire la chiusura della tastiera virtuale quando l'utente preme il pulsante "ok" dopo aver modificato un campo di testo. In realtà, quello che sto cercando di ottenere è: quando viene premuto il pulsante "ok", il campo viene analizzato e, se valido, avvia un'altra attività. Questo è abbastanza facile.Tenere la softkey aperta quando si preme il tasto di invio

Tuttavia, quando il campo non è valido, desidero che la tastiera virtuale rimanga aperta. E questo è ... un inferno più complicato. Se qualcuno sa come ottenere una cosa del genere ...

Grazie in anticipo.

MODIFICA: cosa intendo per il pulsante OK è il pulsante OK dalla tastiera virtuale.

risposta

12

Collegare OnEditorActionListener al vostro campo di testo e tornare true dal suo metodo onEditorAction, quando ActionID è uguale a IME_ACTION_DONE. Questo consentirà di evitare tastiera virtuale dal nascondiglio:

EditText txtEdit = (EditText) findViewById(R.id.txtEdit); 
txtEdit.setOnEditorActionListener(new OnEditorActionListener() { 

    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { 
    if (actionId == EditorInfo.IME_ACTION_DONE) { 
     // your additional processing... 
     return true; 
    } else { 
     return false; 
    } 
    } 

}); 
+1

A seconda del EditText 'Android: il valore imeOptions', potrebbe essere necessario controllare ActionID contro' IME_NULL', 'IME_ACTION_GO' ecc – Idolon

+0

provato e che sta funzionando perfettamente! – Redwarp

+0

ha funzionato perfettamente! cercavo questo – zeitue

Problemi correlati