Android EditText 禁用軟鍵盤,但是需要顯示光標

3.0以下版本可以用editText.setInputType(InputType.TYPE_NULL)來實現。或者設置editText.setKeyListener(null)來實現.

3.0以上版本可以調用隱藏方法:setShowSoftInputOnFocus(false),由於是系統內部方法。無法直接調用,所以採用反射的方式來進行調用
 

    public void closekeyboard(EditText view) {
        if (android.os.Build.VERSION.SDK_INT <= 10) {
            view.setInputType(InputType.TYPE_NULL);
        } else {
            this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
            try {
                Class<EditText> cls = EditText.class;
                Method setSoftInputShownOnFocus;
                setSoftInputShownOnFocus = cls.getMethod("setShowSoftInputOnFocus", boolean.class);
                setSoftInputShownOnFocus.setAccessible(true);
                setSoftInputShownOnFocus.invoke(view, false);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章