Android开发技术点6——Dialog 键盘处理

本文介绍了在Android Dialog中处理软键盘的显示与隐藏问题,包括如何在Dialog隐藏时自动关闭软键盘,以及如何避免软键盘操作导致的View已销毁错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通常我们使用InputMethodManager来处理应用中软键盘的操作,定义如下:
private InputMethodManager mInputMethodManager;
mInputMethodManager = (InputMethodManager)
mContext.getSystemService(Context.INPUT_METHOD_SERVICE);
今天要说的是Dialog中有关软键盘的处理:
在Dialog中,如果有EditText输入框,那么在弹出软键盘的时候,点击其他按钮,想使Dialog隐藏,Dialog隐藏后,键盘是不会自动消失的;需要我们代码上控制下,在添加以下代码时需要有一个注意的地方:
mInputMethodManager.hideSoftInputFromWindow(v.getApplicationWindowToken(), 0);
隐藏键盘的方法一定要在dismiss()之前使用,否则不会起作用,原因是键盘所依附的view已经销毁了,在对其操作就不会有回应;
另外,假如Dialog键盘处于显示状态,这时我们点击空白处,会调用OnCancelListener或OnDismissListener,在这些监听的回调方法中,我们使用上面的代码是键盘隐藏,是不起作用的,原因同样是因为在这些监听的回调方法中,Dialog已经dismiss了,也就是软键盘所依附的View已经销毁;所以,我们可以在自定义的View extends Dialog的onTouchEvent方法中添加隐藏键盘的代码;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值