项目中---关于AlertDialog中EditText不显示软键盘的解决方法
2016-06-29 16:00
405 查看
第一种方法:
一般,打开一个Activity,其中有一个EditText的话,系统会自动弹出软键盘。
本例Activity中需要启动一个AlertDialog,这个对话框使用的是自定义布局,在这个对话框里有个EditText,可能是AlerDialog的问题,导致对话框弹出时不能自动打开软键盘并定
位焦点到文本框里。
第二种方法:
自定义一个Dialog继承自AlertDialog,没有办法弹出软键盘,只改了一个地方,继承自dialog,软键盘就出来了。我猜是AlertDialog源码中本身有代码禁用了软键盘,因为
AlertDialog本身是没有输入框的,android本意就是让我们自定义对话框的时候要继承自Dialog。
一般,打开一个Activity,其中有一个EditText的话,系统会自动弹出软键盘。
本例Activity中需要启动一个AlertDialog,这个对话框使用的是自定义布局,在这个对话框里有个EditText,可能是AlerDialog的问题,导致对话框弹出时不能自动打开软键盘并定
位焦点到文本框里。
final AlertDialog.Builder alertDialog = new android.app.AlertDialog.Builder(Edit_DetailActivity.this); dialog = alertDialog.create(); dialog.setView(view, 0, 0, 0, 0); dialog.setOnShowListener(new OnShowListener() { public void onShow(DialogInterface dialog) { InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); imm.showSoftInput(invoice_companyname_et, InputMethodManager.SHOW_IMPLICIT); } }); dialog.show();
第二种方法:
自定义一个Dialog继承自AlertDialog,没有办法弹出软键盘,只改了一个地方,继承自dialog,软键盘就出来了。我猜是AlertDialog源码中本身有代码禁用了软键盘,因为
AlertDialog本身是没有输入框的,android本意就是让我们自定义对话框的时候要继承自Dialog。
相关文章推荐
- 使用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