Android 中的监听和按键处理详情 目录 各种监听 按键处理 onKeyDown() onBackPressed() Fragment中监听Back返回键 各种监听 我们来练习下各种监听.我们在 TextView 上添加了触摸监听,在 Button 上添加了长按监听,在 Spinner 下拉框选项发生变化的时候添加了监听
目录
- 各种监听
- 按键处理
- onKeyDown()
- onBackPressed()
- Fragment中监听Back返回键
各种监听
我们来练习下各种监听。我们在 TextView 上添加了触摸监听,在 Button 上添加了长按监听,在 Spinner 下拉框选项发生变化的时候添加了监听,在 ListView 选中选项时增加了监听。
xml
Activity
按键处理
onKeyDown()
按键处理表现为使用 Android 设备时操作的物理按钮的响应的处理。
重写 onKey??() 方法可以处理按钮的事件,该系列方法的参数 int keyCode 表示按下的哪个键,可以匹配 keyEvent 类中的常量进行对比。
我们可以捕获 Back 键。原理是:当按下 BACK 键时,会被onKeyDown
捕获,判断是 BACK 键,则执行相应方法。
新建一个测试项目,在 MainActivity 中增加如下代码:
运行程序:
可以看到按下返回键时,退出了程序,同时输出日志
由于最后执行了return super.onKeyDown(keyCode, event);
,所以按照默认方式退出了
如果改为return false;
或 return true;
都不会退出程序。
栗子:连按2次退出应用程序的代码
运行程序,当连续按两次返回键会退出程序,如果只按一次不会。
onBackPressed()
onBackPressed()
这个方法就是专门用来监听 back 键事件的。所以可以用以下代码完成 按两次返回键退出程序 的功能。
Fragment中监听Back返回键
监听手机上的 Back 键可以在 Activity 中重写onBackPressed
方法。
如果只有1个 Activity 管理多个 Fragment,每个 Fragment 点击 Back 键处理不同事件,可以在 Activity 中重写 onBackPressed 方法,然后区分不同 Fragment 即可。
因为我的 Fragment 用 tag 进行了区分,区分当前 tag 即可,代码如下:
到此这篇关于Android 中的监听和按键处理详情的文章就介绍到这了,更多相关Android 监听 内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!