有一个Activity,里面有个EditText下面是个ListView,每次运行这个Activity,输入法都自动跳出来,太恼火了。因为这个ListView是显示数据库的,一开始怀疑数据库游标Cursor的问题,看来怀疑错了,就是EditText和ListView同时出现,导致输入法自动跳出来。事实上我们需要的是,点击EditText后,输入法才出来。解决方法有:
方法1:
在onCreate()里,this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
方法2:
| InputMethodManager m = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); m.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS); m.hideSoftInputFromInputMethod(arg0,arg1); |
或者:
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(myEdit.getWindowToken(), 0); //myEdit是需要禁止自动弹出软键盘的EditText对象。
方法3:
在AndroidManifest.xml中,Activity的属性添加android:windowSoftInputMode=”stateHidden”
或 android:windowSoftInputMode="adjustPan|stateHidden"
我自己用的第一种,很方便奏效!
本文解决了一个常见的Android应用问题,即在Activity中,当EditText和ListView同时出现时,输入法会自动跳出来,影响用户体验。提供了解决方案包括在onCreate()方法中设置窗口属性、使用InputMethodManager类来手动控制输入法的显示与隐藏,以及在AndroidManifest.xml中添加特定属性。重点介绍了第一种方法的实现步骤和效果。
3368

被折叠的 条评论
为什么被折叠?



