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();
}
}
}