今天遇到一个小问题搞了一个多小时就是EditText默认获取到光标并弹出软件盘的问题
这不符合我的需求
在网上找了很多方法最终解决方案如下
3.0以下版本可以用editText.setInputType(InputType.TYPE_NULL)来实现。或者设置editText.setKeyListener(null)来实现.
3.0以上版本除了调用隐藏方法:setShowSoftInputOnFocus(false),由于是系统内部方法。无法直接调用,所以采用反射的方式来进行调用
方式 一:
if (android.os.Build.VERSION.SDK_INT <= 10) {
mEditText.setInputType(InputType.TYPE_NULL);
} else {
ElderLeaveActivity.this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
try {
Class cls = EditText.class;
Method setSoftInputShownOnFocus;
setSoftInputShownOnFocus = cls.getMethod(“setShowSoftInputOnFocus”, boolean.class);
setSoftInputShownOnFocus.setAccessible(true);
setSoftInputShownOnFocus.invoke(mEditText, false);
} catch (Exception e) {
e.printStackTrace();
}
}
方式二:
在清单文件 activity属性中设置
android:windowSoftInputMode=“stateHidden”
方式三:
解决方法2:
InputMethodManager inputMethodManager = (InputMethodManager)this.getSystemService(Context.INPUT_METHOD_SERVICE);
inputMethodManager.hideSoftInputFromWindow(et.getWindowToken(), 0);