2016年4月22日 星期五

Android 強制顯示鍵盤

之前在實作有關EditText的頁面時,總覺得要強制顯示鍵盤,很困難,叫它出現不出現,真難控制。

後來才瞭解,原來畫面還沒準備好,就去呼叫強制顯示鍵盤,所以Android根本不理我。
所以必須先讓他等個0.1秒,這樣就可以成功呼叫啦。

final ImputMethodManager imm =
    (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);

editText.postDelayed(new Runnable(){
    @Override
    public void run(){
        editText.requestFocus();
        imm.showSoftInput(editText, 0);
    }
}, 100);


如果要隱藏鍵盤就比較單純了。
ImputMethodManager imm =
    (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
IBinder ib = Activity.this.getCurrentFocus().getWindowToken();
imm.hideSoftInputFromWindow(ib, InputMethodManager.HIDE_NOT_ALWAYS);