Sto creando un semplice gioco di digitazione in Android. Non ho problemi a ricevere input dalla tastiera fisica, ma ora sto cercando di far apparire la tastiera virtuale senza EditText. Finora, ho provato la seguente:Posso usare la tastiera virtuale senza un EditText?
1. EditText con visibility = "invisibile" e questa linea:
((InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE)).showSoftInput(keyboard_edittext, InputMethodManager.SHOW_FORCED); // SHOW_IMPLICIT also failed
2. Questa linea nella onCreate()
:
this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
Questo metodo visualizzava effettivamente una casella bianca vuota sul 10% inferiore dello schermo ma non sulla tastiera, anche se quando la eseguo ora non fa nulla.
3. Altri due righe nel onCreate()
:
InputMethodManager m = (InputMethodManager)this.getSystemService (Context.INPUT_METHOD_SERVICE); m.toggleSoftInput(0, InputMethodManager.SHOW_IMPLICIT);
Nessuna fortuna su uno di questi. È anche possibile visualizzare la tastiera virtuale (e quindi usare onKeyUp
/onKeyDown
) senza concentrarsi su un EditText?
In questo momento, l'unico modo che posso vedere è quello di approcciare questo è quello di creare la mia implementazione della tastiera virtuale (vale a dire costruirla da zero). Non vedo l'ora!
Anche se si riesce a visualizzare la tastiera virtuale, onKeyUp()/Giù() non verrà richiamato, almeno non per tutti i tasti e su tutte le versioni di Android. In alcune versioni di Android (precedenti) (penso 1.5 e forse 1.6) onKeyDown() viene chiamato con i tasti numerici, ma senza lettere. Ciononostante, in generale l'utilizzo di onKeyDown() per ricevere input da tastiera virtuale non porterà ai risultati desiderati - questo funzionerà solo correttamente usando tastiere fisse. – ubuntudroid