天天看點

Android禁止Edittext彈出軟體盤,光标依然正常顯示。

/** 
     * 禁止Edittext彈出軟體盤,光标依然正常顯示 
     * call_roomNum 是EditText編輯框
     */  
    public void disableShowSoftInput() {  
         if (android.os.Build.VERSION.SDK_INT <= ) {
             call_roomNum.setInputType(InputType.TYPE_NULL);
         } else {//禁止Edittext彈出軟體盤
            //Call是目前活動  
             Call.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(call_roomNum, false);
             } catch (Exception e) {
                 e.printStackTrace();
             }
         }
    }