1. 程式人生 > >強制控制鍵盤顯示隱藏

強制控制鍵盤顯示隱藏

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。