強制控制鍵盤顯示隱藏
阿新 • • 發佈:2019-02-09
KeyBoardUtil .java
/**
* 操作輸入法的工具類。可以方便的關閉和顯示輸入法.
*/
public class KeyBoardUtil {
private static KeyBoardUtil instance;
private InputMethodManager mInputMethodManager;
private static Activity mActivity;
private KeyBoardUtil() {
mInputMethodManager = (InputMethodManager) mActivity.getSystemService(INPUT_METHOD_SERVICE);
}
public static KeyBoardUtil getInstance(Activity activity) {
mActivity = activity;
if (instance == null) {
instance = new KeyBoardUtil();
}
return instance;
}
/**
* 強制顯示輸入法
*/
public void show() {
show(mActivity.getWindow().getCurrentFocus());
}
public void show(View view) {
mInputMethodManager.showSoftInput(view, InputMethodManager.SHOW_FORCED);
}
/**
* 強制關閉輸入法
*/
public void hide() {
hide(mActivity.getWindow().getCurrentFocus());
}
public void hide(View view) {
mInputMethodManager.hideSoftInputFromWindow(view.getWindowToken(), 0 );
}
/**
* 如果輸入法已經顯示,那麼就隱藏它;如果輸入法現在沒顯示,那麼就顯示它
*/
public void showOrHide() {
mInputMethodManager.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);
}
}
使用.hide()會報錯,報焦點獲取失敗時應使用 hide(View view) ,傳入EditTeview控制元件id。