2014-07-08 34 views
0

通常當分離片段時,軟鍵盤保持不變。該片段的視圖包含多個EditText字段 - 是否有一種方法可以在不傳入EditText的情況下一般地關閉鍵盤?通用鍵盤解除

回答

0

在片段的onDestroy()方法上,或者通過委託給父活動的自己的回調函數,您應該調用下面的方法。沒有必要在視圖中傳遞:

public static void hideSoftKeyboard(Activity activity) { 
    InputMethodManager inputMethodManager = (InputMethodManager) activity.getSystemService(Activity.INPUT_METHOD_SERVICE); 
    inputMethodManager.hideSoftInputFromWindow(activity.getCurrentFocus().getWindowToken(), 0); 
} 

public static void showSoftKeyboard(Activity activity, View view) { 
    activity.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE); 
    InputMethodManager inputMethodManager = (InputMethodManager) activity.getSystemService(Activity.INPUT_METHOD_SERVICE); 
    inputMethodManager.showSoftInput(view, 0); 
} 

public static boolean isSoftKeyboardShowing(Activity activity) { 
    InputMethodManager inputMethodManager = (InputMethodManager) activity.getSystemService(Activity.INPUT_METHOD_SERVICE); 
    return inputMethodManager.isActive(); 
}