Android弹出式对话框AlertDialog中的EditText自动打开软键盘
2016-09-19 17:43
489 查看
Activity中需要启动一个AlertDialog,这个对话框使用的是自定义布局,在这个对话框里有个EditText,可能是自定义布局的问题,导致对话框弹出时不能自动打开软键盘并定位焦点到文本框里。
editText为自定义dialog中的输入框的view在dialogbc3f.show()后,dialog.show(); Timer timer = new Timer(); timer.schedule(new TimerTask() { @Override public void run() { dialog.showKeyboard(); } }, 300);
dialog.show(); dialog.setContentView(windowLayout);
dialog.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM); dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);show之后设置红色代码AlertDialog里的Edittext可获得焦点在dialog 里findViewById,拿到Edittext,requestFocus也不好使,因为dialog还没有完全展示到屏幕上,类似于Activity还没有执行OnResume。解决方法:延迟一会儿调出输入法可以在自定义的dialog中增加如下方法:public void showKeyboard() { if(editText!=null){ //设置可获得焦点 editText.setFocusable(true); editText.setFocusableInTouchMode(true); //请求获得焦点 editText.requestFocus(); //调用系统输入法 InputMethodManager inputManager = (InputMethodManager) editText .getContext().getSystemService(Context.INPUT_METHOD_SERVICE); inputManager.showSoftInput(editText, 0); } }
![](http://static.blog.csdn.net/images/save_snippets.png)
网上查这样也可以,未测试dialog.setOnShowListener(newOnShowListener(){publicvoid onShow(DialogInterfacedialog){InputMethodManager imm=(InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);imm.showSoftInput(et_dialog_confirmphoneguardpswd,InputMethodManager.SHOW_IMPLICIT);}});
相关文章推荐
- Android弹出式对话框AlertDialog中的EditText自动打开软键盘
- Android弹出式对话框AlertDialog中的EditText自动打开软键盘
- Android弹出式对话框AlertDialog中的EditText自动打开软键盘
- Android弹出式对话框AlertDialog中的EditText自动打开软键盘
- Android弹出式对话框AlertDialog中的EditText自动打开软键盘
- Android弹出式对话框AlertDialog中的EditText自动打开软键盘
- Android弹出式对话框AlertDialog中的EditText自动打开软键盘
- 关于在AlertDiaLog中的Edittext无法打开软键盘问题
- android AlertDialog中EditText无法显示软键盘问题的解决方案
- android AlertDialog中EditText无法显示软键盘问题的解决方案
- Dialog 中有EditText时,打开自动弹出软键盘,关闭时隐藏软键盘
- android获取自定义布局的alertdialog中edittext的值
- 小笔记 使android界面打开时EditText不自动获得焦点
- [Android]去除EditText自动获得的焦点,解决软键盘弹出问题
- AlertDialog中EditText不能获取焦点以及不宽度不能自动铺满的完美解决方案
- android中dialog中的EditText无法弹出输入法对话框
- android开发中防止刚进入activity时edittext获取焦点,自动弹出软键盘
- 【 Android】自定义的AlertDialog中的EditText无法调用输入法问题解决
- android在打开activity时如何防止edittext获取焦点弹出软键盘
- Android 在弹出Dialog(带EditText)的同时弹出软键盘并且EditText中的内容全选!!!