Non capisco perché questa parte di codice non funzioni. Vengono rilevati solo backspace e tasto di ritorno. L'ascoltatore non attiva nessun'altra chiave. Il mio dispositivo è Nexus One.onKeyListener non funziona su tastiera virtuale
Ho provato a sovrascrivere il metodo OnKeyDown dell'attività e questo è ancora peggio. L'unico pulsante rilevato era il pulsante indietro dell'hardware.
Sto vedendo in giro un suggerimento per utilizzare TextWatcher e onTextChanged, mentre potrebbe funzionare in alcuni casi, non è un vero problema. Ad esempio, se la casella di testo è vuota, non verrà rilevato se l'utente preme il pulsante BackSpace (Elimina). Quindi qualche idea?
TextView txtInput = (TextView)findViewById(R.id.txtInput);
txtInput.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
makeToast(keyCode + " key pressed");
return true;
}
});
Bene, ho trascorso 4 ore buone su questo problema. Sembra che nessuno abbia una soluzione per questo. Poche persone suggeriscono anche di usare OnKeyboardActionListener, ma non riescono a trovare alcun esempio su come usarlo. – bobetko
Trovato l'esempio qui: http://developer.android.com/resources/samples/SoftKeyboard/src/com/example/android/softkeyboard/SoftKeyboard.html – bobetko
Non sono sicuro che l'esempio di softkeyboard funzionerà per me. Non voglio scrivere un altro metodo di input. Voglio semplicemente mostrare il metodo di input predefinito sullo schermo (di solito la tastiera di Android) e catturare qualsiasi tasto premuto. Perché questo sembra un compito così scoraggiante? Mi sento frustrato – bobetko