2012-01-10 17 views
9

Activity sayfamda EditText var. Activity başlar başlamaz, kullanmaya devam etmek için yazılım tuşunu zorladım.Android: Açmak zorunda kaldığında, yumuşak klavyeyi kapatmak için nasıl zorlayabilirim?

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
if (imm != null) { 
    imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0); 
} 

Şimdi tuş takımı açıksa ve ana ekran düğmesine bastığımda, açık kalır. Ev basına nasıl yaklaşabilirim?

+0

bu bağlantıya bakın http://stackoverflow.com/questions/7200281/programatically-hide-show-android-soft-keyboard –

cevap

20
InputMethodManager mgr = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
mgr.hideSoftInputFromWindow(Your Button.getWindowToken(), 0); 
1
@Override 
public boolean dispatchTouchEvent(MotionEvent event) { 
    View view = getCurrentFocus(); 
    boolean ret = super.dispatchTouchEvent(event); 

    if (view instanceof EditText) { 
     View w = getCurrentFocus(); 
     int scrcoords[] = new int[2]; 
     w.getLocationOnScreen(scrcoords); 
     float x = event.getRawX() + w.getLeft() - scrcoords[0]; 
     float y = event.getRawY() + w.getTop() - scrcoords[1]; 

     // Log.d("Activity", "Touch event "+event.getRawX()+","+event.getRawY()+" "+x+","+y+" rect "+w.getLeft()+","+w.getTop()+","+w.getRight()+","+w.getBottom()+" coords "+scrcoords[0]+","+scrcoords[1]); 
     if (event.getAction() == MotionEvent.ACTION_UP && (x < w.getLeft() || x >= w.getRight() || y < w.getTop() || y > w.getBottom())) { 
      InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); 
      imm.hideSoftInputFromWindow(getWindow().getCurrentFocus().getWindowToken(), 0); 
     } 
    } 
    return ret; 
} 

Bu kod ekranda herhangi bir yere dokunun klavye kapanır.

+0

@ rashmi Önerdiğiniz çözüm, örtülü olarak adlandırıldığında yumuşak klavyeyi kapatmaktır. Burada aktivitem açıldığında açmak için zorluyorum.toggleSoftInput (InputMethodManager.SHOW_FORCED, 0); Yani, Bu çözüm işe yaramıyor – Vibhuti

İlgili konular