解决在自定义AlertDialog中EditText无法弹出软键盘的问题
2016-12-12 21:44
447 查看
原因:今天做一个文件管理器的时候,在文件重命名上遇到了一个问题(准确的说是两个另外一个与本文无关,就不多提)---在弹出的AlertDialog中的EditText居然无法弹出软键盘,我这里需要输入你这是逗我?
多番查询之后知道了原因:
在setContentView()方法之前就调用了show()方法。所以没能够识别(或者是没有这么彻底,具体原因我也不解)。
解决办法:
在show之前,使用 LayoutInflat 来新建一个布局,然后通过setView()方法,先把布局设置进去。后面的就不变。问题就此解决。
这里的LinearLayout是因为自定义的AlertDialog布局的根布局就是LinearLayout,所以,根布局是什么这里就应该用什么。
下面效果图:
多番查询之后知道了原因:
在setContentView()方法之前就调用了show()方法。所以没能够识别(或者是没有这么彻底,具体原因我也不解)。
解决办法:
在show之前,使用 LayoutInflat 来新建一个布局,然后通过setView()方法,先把布局设置进去。后面的就不变。问题就此解决。
alertDialog = new android.app.AlertDialog.Builder(context).create(); alertDialog.setCancelable(true); LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); LinearLayout layout = (LinearLayout)inflater.inflate(contentViewID, null); alertDialog.setView(layout); window = alertDialog.getWindow(); window.setContentView(contentViewID); alertDialog.show(); nameTextView = (EditText)window.findViewById(R.id.dialog_name); nameTextView.setText(name); this.name = name; surebtn = (Button)window.findViewById(R.id.dialog_sureBtn); canclebtn = (Button)window.findViewById(R.id.dialog_cancleBtn);
这里的LinearLayout是因为自定义的AlertDialog布局的根布局就是LinearLayout,所以,根布局是什么这里就应该用什么。
下面效果图:
相关文章推荐
- 关于AlertDialog中嵌入Edittext无法弹出输入法的问题解决
- 自定义Dialog中点击EditText无法弹出软键盘的问题
- 【 Android】自定义的AlertDialog中的EditText无法调用输入法问题解决
- AlertDialog自定义view中edittext无法弹出问题
- AlertDialog自定义布局中有editText,不能弹出软键盘
- 自定义的AlertDialog里面点击EditText的时候软键盘不能弹出
- 关于带有EditText的自定义AlertDialog,不能弹出软件盘的解决方法
- android AlertDialog中EditText无法显示软键盘问题的解决方案
- 解决自定义Dialog无法弹出软键盘的问题
- android AlertDialog中EditText无法显示软键盘问题的解决方案
- 解决Dialog中有EditText时无法自动弹出输入的问题
- android中自定义的dialog中的EditText无法弹出输入法解决方案
- android中自定义的dialog中的EditText无法弹出输入法解决方案
- android中自定义的dialog中的EditText无法弹出输入法解决方案
- 自定义AlertDialog,以及解决自定义Dialog中EditText不能弹出输入法的问题
- 关于自定义dialog的EditText无法弹出软键盘的bug的解决方案
- 解决点击edittext时有时无法弹出软键盘的问题
- Android自定义dialog中的EditText无法弹出键盘的解决
- 解决dialog中嵌套EditText,自动弹出软键盘的问题
- Android自定义dialog中的EditText无法弹出键盘的解决