在Activity中可以很轻监听到onKeyDown事件,但大部分场景我们的操作是在Fragment中完成的,此时要获取到onKeyDown事件需要多做点事

1.首先在Fragment的宿主Activity中重写onKeyDown方法

2.在Fragment中写一个方法,比如:onKeyDownChild(int keyCode, KeyEvent event)

3.在onKeyDown中获取到该Fragment的实例化对象,并调用onKeyDownChild(int keyCode, KeyEvent event)方法

将 keyCode, Event event作为参数传递过去,这样就可以在Fragment中获取到onKeyDown事件

代码如下:

宿主Activity

@Override

public boolean onKeyDown(int keyCode, KeyEvent event) {

if (fragmentsList != null && fragmentsList .size() >= 1) {

Fragment fragment = fragmentsList .get(0);

((TextingFragment) fragment).onKeyDownChild(keyCode, event);

}

return super.onKeyDown(keyCode, event);

}

Fragment

public void onKeyDownChild(int keyCode, KeyEvent event) {

}

备注:如果在Fragment中弹出Dialog对话框时,通过onKeyDownChild方法获取不到事件,解决办法,

参考https://www.jianshu.com/p/30b3ed6f0486

android全局监听onkeydown,在Fragment中监听onKeyDown事件相关推荐

  1. (转)android Fragments详解三:实现Fragment的界面

    为fragment添加用户界面 fragment一般作为activity的用户界面的一部分,把它自己的layout嵌入到activity的layout中.    一个 要为fragment提供layo ...

  2. fragment类中的点击事件空指针异常

    点击事件要写在 onActivityCreated中 另外一种写法: 这种覆写onClick()方法,在这个方法写点击事件的时候是没有反应的 @Overridepublic void onClick( ...

  3. Android屏幕触摸监听,Android在Fragment中实现监听触摸事件

    本文给大家介绍的是监听Fragment的触摸事件实现.如果大家有更好的机制,可以留言交流,下面来看看详细的介绍: 大家都知道,我们的activity中有onTouchEvent方法,可以用来实现触摸事 ...

  4. Android 监听 Android中监听系统网络连接打开或者关闭的实现代码

    本篇文章对Android中监听系统网络连接打开或者关闭的实现用实例进行了介绍.需要的朋友参考下 很简单,所以直接看代码 复制代码 代码如下: package xxx; import android.c ...

  5. android 控件监听方法是,Android | Android中监听Button的实现

    Android中监听Button的实现 单按钮监听 2018-04-27_061911.jpg 1.在按钮所属的父Activity里,创建按钮变量 private Button mBtnTextVie ...

  6. Android中监听电源键长按、Home键、Home键长按

    Android中监听"电源键长按"."Home键"."Home键长按" 这几个"按钮"的触发,都会产生一个Action ...

  7. Android中监听Home键的4种方法总结

    本文主要介绍了Android中监听Home键的4种方法总结,主要讲解了onSaveInstanceState方法.onUserLeaveHint方法.ACTION_CLOSE_SYSTEM_DIALO ...

  8. Android webView中监听物理返回键一层一层退出

    前言 fragment中加载webview如果不处理返回键 那么当你打开多个H5页面的时候 会一次性回退到根级 有时候我们需要一个缓冲 就是一级一级退出 给人一个良好的体验 该怎么做呢? 废话不多说 ...

  9. Fragment中设置监听返回键的功能

    首先创建一个抽象类BackHandledFragment,该类有一个抽象方法onBackPressed(),所有BackHandledFragment的子类在onBackPressed方法中处理各自对 ...

最新文章

  1. 谱聚类(Spectral clustering)(2):NCut
  2. 打开Office时出现“运行时错误91”问题的解决办法
  3. HDU2866 Special Prime
  4. drawable(hdpi,ldpi,mdpi) 的说明
  5. JavaScript / Electron / ipcMain,ipcRenderer
  6. 关于Spring Bean实例注册的流程
  7. java get方法不序列化_Java中的Json序列化,不容忽视的getter
  8. python科学编程入门书_Python数据科学零基础一本通
  9. 需求、需求工程与需求工程师 — 6. 设计能力的要求
  10. 【嵌入式Linux】嵌入式Linux应用开发基础知识之网络通信
  11. 一个斐波那契数列题 HDU 2041
  12. redis 远程主机强迫关闭了一个现有的连接_如何在 Debian 10 上安装和配置 Redis 服务...
  13. Sea Level Anomaly 和 Sea Surface Height Anomaly 的区别
  14. Java入门-换行输出
  15. vue-sytle样式抽离
  16. No matter how well thought out it is
  17. 第P9周:YOLOv5-Backbone模块实现
  18. 软件定义网络基础(SDN①)
  19. 二次规划算法学习笔记
  20. 面试专题——Redis

热门文章

  1. 安全经过广州火车站十大攻略(转)
  2. 偷偷爆料下各公司年终奖情况!(1.30 日最新版)
  3. Pikachu靶场通关笔记
  4. 新成果展示:具有倾斜台面的Micro-LED模型数据库的开发与应用
  5. 永劫无间游戏玩法设计梳理
  6. 通过链接关注微信公众号
  7. Primer笔记——typedef指针类型别名时的const陷阱
  8. ReflectionClass
  9. mongodb 集群shard_mongodb replica set shard 分片 高可用 集群
  10. Arduino 无线继电器 蓝牙 4.0 BLE XBEE 24L01 4路遥控开关