场景:在项目中做联系人界面时,需要按名字和按部门显示联系人,此处使用2个fragment切换显示,按部门显示需要体现部门层级关系,需要实现点击返回上级部门。因为Fragment并不能像在Actvity重写onBackPressed即可,此时就需要在Fragment监听处理返回,否则返回事件在Activity中,并不能返回上级部门。

Fragment中没有可以主动获取焦点的控件(如:edittext)

//主界面获取焦点

@SuppressWarnings("ConstantConditions")

private void getFocus() {

getView().setFocusableInTouchMode(true);

getView().requestFocus();

getView().setOnKeyListener(new View.OnKeyListener() {

@Override

public boolean onKey(View v, int keyCode, KeyEvent event) {

if (event.getAction() == KeyEvent.ACTION_UP && keyCode == KeyEvent.KEYCODE_BACK) {

//TODO: handle back button

return true;

}

return false;

}

});

}

Fragment中有可以主动获取焦点的控件,需要对它进行处理

editText.setOnKeyListener(new View.OnKeyListener() {

@Override

public boolean onKey(View v, int keyCode, KeyEvent event) {

if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_UP) {

//关闭软键盘

InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);

imm.hideSoftInputFromWindow(editText.getWindowToken(), 0);

//TODO: handle back button

return true;

}

return false;

}

});

以上方法测试有效,另附上其他方法(未测试)

android重写返回按钮点击事件,Android Fragment监听返回键相关推荐

  1. android全局监听onkeydown,Android中的几个onTouch()事件、onKeyDown监听返回键无效

    Android中的几个onTouch()事件.onKeyDown监听返回键无效 一:Android中的几个onTouch()事件 继承SimpleOnGestureListener,HahaGestu ...

  2. android 表格控件点击事件,Android零基础入门|RecyclerView点击事件处理

    原标题:Android零基础入门|RecyclerView点击事件处理 前面两期学习了RecyclerView的简单使用,并为其item添加了分割线.在实际运用中,无论是List还是Grid效果,基本 ...

  3. Fragment监听返回键

    Activity 比较容易监听物理键返回事件(onBackPressed):Fragment却不能 假设一个FragmentActivity包含3个Fragment,用户一般期望在返回时,逐层返回到F ...

  4. android怎么设置按钮点击事件监听,Android点击Button按钮的四种事件监听方法总结...

    首先我们在activity_main.xml里面先定义一个Button空间 好,现在要我们来看点击事件的四种写法: 1.最常见的一种写法--匿名的内部类做为事件监听器类 package com.bas ...

  5. Android 更改软键盘右下角按键的样式以及监听此键的方法

    一.我们在开发Android App时有时候会遇到更改软键盘右下角按键的样式 我们可以随自己的需求更改软键盘右下角的显示样式,例如:搜索,下一步,Q(搜索图标) 具体对应: actionNone : ...

  6. 优雅的让Fragment监听返回键

    转载请注明出处:http://write.blog.csdn.net/postedit/40507387 Activity可以很容易的得到物理返回键的监听事件,而Fragment却不能.假设Fragm ...

  7. Android Fragment 监听返回键

    直接给代码*-* Fragment: public boolean onKeyDown(int keyCode, KeyEvent event){if ((keyCode == KeyEvent.KE ...

  8. 【Android 插件化】Hook 插件化框架 ( Hook 实现思路 | Hook 按钮点击事件 )

    Android 插件化系列文章目录 [Android 插件化]插件化简介 ( 组件化与插件化 ) [Android 插件化]插件化原理 ( JVM 内存数据 | 类加载流程 ) [Android 插件 ...

  9. Android Listview中Button按钮点击事件冲突解决办法

    今天做项目时,ListView中含有了Button组件,心里一早就知道肯定会有冲突,因为以前就遇到过,并解决过,可惜当时没有记录下来. 今天在做的时候,继续被这个问题郁闷了一把,后来解决后,赶紧来记录 ...

最新文章

  1. bugFree与zentao
  2. 图像处理之添加图像水印
  3. twisted mysql_Twisted MySQL adbapi返回字典
  4. 微软将为Linux 操作系统带来TEE的支持:TEE(Trusted Execution Environment,可信执行环境)
  5. jQuery 树形控件 TreeView 的 Bug
  6. 安装SQL 2016的时候 Microsoft R Open 和 Microsoft R Server 安装文件的位置
  7. MacOS壁纸文件夹如何查找
  8. 单变量微积分笔记——无穷级数,泰勒展开及欧拉公式的证明
  9. 三个月追求金牛全过程(图
  10. HDU 6287 口算训练(分解质因子 + 二分下标)
  11. Mysql性能指标量化指标
  12. java安装未指定的错误_安装redistributable(x64)出现0x80240017未指定的错误
  13. Node——npm常用命令
  14. windows网络适配器 黄色下三角
  15. 计算机学院青年教师讲课,【教学动态】计算机科学与信息工程学院举办首届中青年教师讲课大赛...
  16. MySQL5.7乱码问题
  17. Android平台简介
  18. TransE论文第4节:实验
  19. python运算结果是fasls的代码_《利用Python进行数据分析》--整理学习
  20. 7-65 字符串替换 (15 分) 本题要求编写程序,将给定字符串中的大写英文字母按以下对应规则替换: 原字母 对应字母 A Z B Y C X D W … … X C Y B Z A

热门文章

  1. java invokelater 以及invokeandwait
  2. error C2871: #39;std#39; : does not exist or is not a namespace
  3. 超级楼梯HDU2041
  4. [原]最大流, 最小分割分析
  5. POJ3251 Big Square【水题】
  6. Python 标准库 —— 邮件(email)与邮件服务器(smtplib)
  7. Makefile 文件怎么写
  8. Python、Java 在线笔试
  9. 历法 —— 十二地支与二十八星宿
  10. 浏览器字体大小怎么调_音乐文件如何升降调