Edittext请求输入法无效的解决方案
2015-08-13 19:57
661 查看
测试了很久,有点郁闷,老是不能让edittext自动弹出输入法.最后用了下面的方法,然后就可以了!
不需要搞什么InputmethondManager来打开输入法
虽然在找了很多的时候,很多都说要请求focus,
但在添加多这句了之后,完全就不用.尼玛,太开心了
首先要对指定的输入框请求焦点。然后调用输入管理器弹出软键盘。
警告:对于刚跳到一个新的界面就要弹出软键盘的情况上述代码可能
实例代码如下:
<activity android:name=".activity.SignUpActivity" android:label="@string/title_activity_sign_up" android:windowSoftInputMode="adjustPan|stateAlwaysVisible" />
不需要搞什么InputmethondManager来打开输入法
manager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); manager.showSoftInputFromInputMethod(etPhoneNum.getWindowToken(), InputMethodManager.SHOW_FORCED);
虽然在找了很多的时候,很多都说要请求focus,
etPhoneNum.setFocusable(true); etPhoneNum.requestFocus();
但在添加多这句了之后,完全就不用.尼玛,太开心了
android:windowSoftInputMode="adjustPan|stateAlwaysVisible
延迟打开软键盘
另外需要说的是,我们需要延迟请求打开软键盘。首先要对指定的输入框请求焦点。然后调用输入管理器弹出软键盘。
警告:对于刚跳到一个新的界面就要弹出软键盘的情况上述代码可能
由于界面为加载完全而无法弹出软键盘。此时应该适当的延迟弹出软键盘如400毫秒(保证界面的数据加载完成)。
实例代码如下:
Timer timer = new Timer(); timer.schedule(new TimerTask(){ public void run(){ InputMethodManager inputManager = (InputMethodManager)editText.getContext().getSystemService(Context.INPUT_METHOD_SERVICE); inputManager.showSoftInput(editText, 0); } }, 400);
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories