2011-10-05 22 views
5

Uygulamamda kendi tuş takımım var, bu yüzden yazılım klavyesini her zaman gizlemek istiyorum (belirli etkinliklerde & iletişim kutuları).Yazılım klavyesinin nasıl ortaya çıkmasını önleyebilirim?

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

Bu kod başında haşhaş gelen klavye önlemek, ama metin tıkladığımda klavye yine çıkar: İki seçenek denedi.

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

Bu kod, klavyeyi gizler, ancak klavyenin açılmasını engellemez.

LÜTFEN YARDIM EDİN!

+0

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

+0

thx ama orada farklı bir sorun yaşıyorum ... Ben en baştan beri klavyeyi gizlemek istiyorum ve ne yaparsam yapsın ben onu haşhaş önlemek için – Han

cevap

8

Sonunda anladım!

ben klavyeyi bastırmak istediğiniz etkinlikler için

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

kullanılan

(tüm diğer aktiviteler devralan genel bir aktivitede koyabilirsiniz) Ancak bu engel olmaz EditText metin kutusuna tıkladığınızda açılan klavye. Ne yaptım metin kutusu onTouch olayı tüketilen geçerli:

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

Ben de – castle1971

+1

kullandığım teknik nedir? İmleç gösterecek mi, yoksa sen mi? Dokunma olayını yuttuğumda, imlecin gösterilmesini engeller. –

+0

Bu gönderi eski ama merak ediyordum, hala bir donanım klavyesiyle yazı yazabilir misiniz? –

İlgili konular