标签:android android-softkeyboard android-edittext dialog
我在这里阅读了几篇文章,并尝试使用谷歌搜索.但我仍然有这个问题:
我已经制作了一个子类自定义对话框.它包含一个EditText和一个Button(“OK”).一旦对话框弹出,我想让键盘自动显示.
我通过这样做成功了:
imm = (InputMethodManager) EditDialog.this.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_NOT_ALWAYS);
在我的自定义对话框的onCreate()和
imm.hideSoftInputFromWindow(editText.getWindowToken(), 0);
在我的解雇().
一旦弹出对话框,这将打开键盘,并在按下“确定”按钮后关闭键盘.
但是,如果软键盘打开,我按下我的手机/模拟器的HOME按钮,他们的键盘将保持打开状态,因为 – 我想 – 我用SHOW_FORCED强行打开它.因此,我试图隐藏(使用来自InputMethodManager的toggleSoftInput())键盘,如果它在对话框的父活动onPause()方法中打开.这似乎只能使用解决方法,如HERE所示.
TL; DR:当我的带有EditText和Button的Dialog弹出时(我专注于EditText),我希望显示软键盘.我得到了它的工作,但它涉及写很多黑客正确关闭它.
编辑:我的代码基于THIS
解决方法:
这回答了here,对我来说很有用.如果在显示键盘时按下主页按钮,则在按下主页键后会正确隐藏.
标签:android,android-softkeyboard,android-edittext,dialog 来源: https://codeday.me/bug/20190704/1381589.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。