2011-10-05 12 views
5

Nella mia applicazione ho la mia tastiera personale, quindi voglio nascondere la tastiera del software tutto il tempo (nelle attività specifiche delle finestre di dialogo &). Ho sperimentato con due opzioni:Come si impedisce la comparsa della tastiera software?

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); 

Questo codice impedisce la tastiera da popping up all'inizio, ma quando clicco sulla casella di testo viene visualizzata la tastiera ancora.

InputMethodManager imm = (InputMethodManager)getContext().getSystemService(Context.INPUT_METHOD_SERVICE); 
imm.hideSoftInputFromWindow(editText.getWindowToken(), 0); 

Questo codice nascondere la tastiera, ma non impedisce la tastiera dal popping up.

PER FAVORE AIUTO!

+0

check-out questo http://stackoverflow.com/questions/7289335/soft-keyboard-shows-up-on-edittext-focus-only -senza/7291121 # 7291121 –

+0

thx ma sto avendo un problema diverso lì ... Voglio nascondere la tastiera sin dall'inizio e impedirgli di apparire, non importa quello che faccio – Han

risposta

8

Finalmente capito!

ho usato

public void supressKeyboard() { 
    getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); 
} 

per le attività dove voglio sopprimere la tastiera (si può mettere in un'attività generale in cui tutte le altre attività ereditano da)

Ma questo non impedirà la tastiera da spuntare quando si fa clic sulla casella di testo EditText. Quello che ho fatto è che ho consumato l'evento onTouch per la casella di testo:

@Override 
public boolean onTouchEvent(MotionEvent event) { 
    return true; 
} 
+0

Questa è la tecnica che uso anch'io – castle1971

+1

Come hai il cursore da mostrare o no? Ogni volta che inghippo l'evento tattile, impedisce al cursore di apparire. –

+0

Questo post è vecchio, ma ... Mi stavo chiedendo, puoi ancora digitare con una tastiera hardware? –

Problemi correlati