2011-10-05 15 views
5

Mam własną klawiaturę w mojej aplikacji, więc chcę cały czas ukrywać klawiaturę programową (w określonych działaniach &). eksperymentowałem z dwóch opcji:Jak zapobiec pojawianiu się klawiatury oprogramowania?

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

Ten kod zapobiega klawiaturę od pojawiały się na początku, ale po kliknięciu na pole tekstowe klawiatura nadal wyskakuje.

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

Ten kod ukrywa klawiaturę, ale nie zapobiega pojawieniu się klawiatury.

PROSIMY O POMOC!

+0

Sprawdź tę http://stackoverflow.com/questions/7289335/soft-keyboard-shows-up-on-edittext-focus-only -once/7291121 # 7291121 –

+0

thx, ale mam inny problem ... Chcę ukryć klawiaturę od samego początku i zapobiec jej pojawianiu się bez względu na to, co robię. – Han

Odpowiedz

8

W końcu się rozgryzłem!

użyłem

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

dla działań, gdzie chcą stłumić klawiatury (można go umieścić w ogólnej działalności, w których wszystkie inne działania dziedziczą z)

Ale to nie będzie zapobiegać klawiatura pojawia się po kliknięciu pola tekstowego EditText. Co ja zrobiłem jest zużywana zdarzenie onTouch dla pola tekstowego:

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

Taką technikę też używam – castle1971

+1

czy masz kursor do pokazania, czy ty? Ilekroć połknę wydarzenie dotykowe, zapobiega wyświetlaniu kursora. –

+0

Ten post jest stary, ale ... Zastanawiałem się, czy nadal możesz pisać za pomocą klawiatury sprzętowej? –

Powiązane problemy