dialog.diiss

彻底解决了,对话框点击外部消失,但键盘不消失的问题。对话框包含输入框编辑文本。当外部消失时,键盘并没有消失。原来有问题的代码如下:

dialog.dismiss

后来发现mEditText.getWindowToken()的指针在缺失时是空。据估计,dialog在调用diissListener时已经回收了它的所有内部控件。所以我想到重写一个MyDialog来复制dissolve方法,如下所示:

@ overridepublicvoiddisse(){ View View = getCurrentFocus();if(view instance of TextView){ InputMethodManager mInputMethodManager =(InputMethodManager)get context()。getSystemService(上下文。输入_方法_服务);minputmethodmanager . hidesoftinputfromwindow(view . getwindowtoken(),InputMethodManager。结果_未改变_显示);} super . dissolve();}

图片如下:

在super . dissolve()之前,遍历对话框中的视图。如果是TextView的子类,getWindowToken(),然后隐藏键盘;

终于解决了这个疑难杂症,主要是网上资料少,所以很完美!

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。

发表回复

登录后才能评论