2012-06-24 63 views
3

我創建了一個方法來檢查鍵盤是否在editText:searchfield的活動(選項卡)中使用。每當我離開活動(標籤)並切換到另一個時,我想關閉鍵盤。因此,我在onStop()中調用該方法。但沒有任何反應,爲什麼這不起作用,任何人都對onStop()在Android中的工作方式有更多見解?我怎樣才能使它工作? /非常感謝!如何在切換活動/選項卡時關閉Android鍵盤

@Override 
protected void onStop() 
{ 
    super.onStop(); 
    this.hideKeyboard(); <---------------------- 
    if(this.data != null) 
    { 
     this.data.destroy(); 
    } 
} 

private void hideKeyboard() 
{ 
    if (this.searchField != null) 
    { 
     InputMethodManager imm = (InputMethodManager) getSystemService(Activity.INPUT_METHOD_SERVICE); 
     imm.hideSoftInputFromWindow(this.searchField.getWindowToken(), 0); 
    } 
} 
+2

你嘗試'onPause()'而不是'onStop()'? – Floern

+0

嘗試在onpause中做到這一點 – Ronnie

+0

嘗試在你的主Activity中使用'TabHost.OnTabChangeListener()'並從那裏調用你的'hideKeyboard()'方法。 'http://developer.android.com/reference/android/widget/TabHost.OnTabChangeListener.html – Squonk

回答

4

從評論

onStop()當你切換選項卡,將不會被調用。改爲使用onPause()

4

您可能應該在onPause()而不是onDestroy()中執行此操作,因爲通常切換到新的活動不會完成當前活動,除非您明確地執行此操作。

相關問題