700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Android禁止EditText弹出输入法

Android禁止EditText弹出输入法

时间:2023-11-17 15:42:20

相关推荐

Android禁止EditText弹出输入法

网上方法很多,尝试的方法包括但不限于:

1.在AndroidMainfest.xml对应的Activity中加入android:windowSoftInputMode="stateHidden"。

它有九个取值:stateUnspecified、stateUnchanged、stateHidden、stateAlwaysHidden、stateVisible、stateAlwaysVisible、adjustUnspecified、adjustResize、adjustPan。具体含义可参考:

/twoicewoo/article/details/7384398/

/gccbuaa/p/7049889.html

2.使用clearFocus方法清除EditText的焦点。

3.隐藏安卓输入法窗口:

EditText edit=(EditText)findViewById(R.id.edit); InputMethodManager imm =(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);imm.hideSoftInputFromWindow(edit.getWindowToken(),0);

均无效。最终使用的方法为设置

edit.setInputType(InputType.TYPE_NULL);

但是出现了焦点消失的问题,参考:/sinat_27672523/article/details/56839837解决

//禁止输入法弹出的同时不失去焦点与光标public void disableShowInput() {if (android.os.Build.VERSION.SDK_INT <= 10) {h.setInputType(InputType.TYPE_NULL);m.setInputType(InputType.TYPE_NULL);s.setInputType(InputType.TYPE_NULL);} else {Class<EditText> cls = EditText.class;Method method;try {method = cls.getMethod("setShowSoftInputOnFocus", boolean.class);method.setAccessible(true);method.invoke(h, false);method.invoke(m, false);method.invoke(s, false);} catch (Exception e) {}try {method = cls.getMethod("setSoftInputShownOnFocus", boolean.class);method.setAccessible(true);method.invoke(h, false);method.invoke(m, false);method.invoke(s, false);} catch (Exception e) {}}}

另外分享/mynameishuangshuai/article/details/51567357以供学习。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。