android键盘监听
2016-06-26 15:02
417 查看
自从2007年乔帮主横空出世推出iPhone后,智能手机就都变成了触摸屏,且屏幕越来越大。输入自然也就通过软件来解决,现在来说绝大多数智能设备都是通过软键盘来做用户输入。在日常的开发过程中难免会跟软键盘打交道,比如强制显示或者强制隐藏等,也有些时候想要在键盘隐藏或者显示的时候做一点事情,这就需要准确的知道键盘的事件,这篇文章就来详细讨论一下Android下面如何做到监听键盘的事件。
硬键盘显示隐藏的事件监听
对于有硬键盘的设备,是会产生运行时的配置变更(Runtime
Config Changes),因此可以通过Activity#onConfigurationChanged)回调来处理:
首先,要在AndroidManifest中给activity加上configChanges=“keyboardHidden”。
然后,在代码中,处理:
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
// Checks whether a hardware keyboard is available
if (newConfig.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_NO) {
Toast.makeText(this, "keyboard visible", Toast.LENGTH_SHORT).show();
} else if (newConfig.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_YES) {
Toast.makeText(this, "keyboard hidden", Toast.LENGTH_SHORT).show();
}
}
需要注意的是,要用Configuration#hardKeyboardHidden而不是Configuration#keyboardHidden,因为只有当硬键盘状态变化时才会回调onConfigurationChanged。
硬键盘显示隐藏的事件监听
对于有硬键盘的设备,是会产生运行时的配置变更(Runtime
Config Changes),因此可以通过Activity#onConfigurationChanged)回调来处理:
首先,要在AndroidManifest中给activity加上configChanges=“keyboardHidden”。
然后,在代码中,处理:
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
// Checks whether a hardware keyboard is available
if (newConfig.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_NO) {
Toast.makeText(this, "keyboard visible", Toast.LENGTH_SHORT).show();
} else if (newConfig.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_YES) {
Toast.makeText(this, "keyboard hidden", Toast.LENGTH_SHORT).show();
}
}
需要注意的是,要用Configuration#hardKeyboardHidden而不是Configuration#keyboardHidden,因为只有当硬键盘状态变化时才会回调onConfigurationChanged。
相关文章推荐
- Fragment生命周期
- android开发实现微博正文效果、顶部悬浮、ScrollView嵌套ListView
- Android 自定义Dialog,文字动态加载效果。
- Android屏幕适配
- Android开源框架Universal-Image-Loader基本介绍及使用
- android内存优化系列之一基础篇
- 获取联系人
- TextView实现复制、滑动、行数限制多余部分...表示
- View抖动
- 自定义SlideBar
- Pinyin4j - utils
- 通用ListAdapter
- android对象池
- 考研英语Android版演示文档
- Android报No resource found that matches the given name问题的解决
- EditText的妙用
- Android-Studio-常用配置和快捷键
- Android热修复学习(三)
- Android 自定义水平进度条的圆角进度
- Android-PullToRefresh下拉刷新库基本用法