android重写返回按钮点击事件,Android Fragment监听返回键
场景:在项目中做联系人界面时,需要按名字和按部门显示联系人,此处使用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监听返回键相关推荐
- android全局监听onkeydown,Android中的几个onTouch()事件、onKeyDown监听返回键无效
Android中的几个onTouch()事件.onKeyDown监听返回键无效 一:Android中的几个onTouch()事件 继承SimpleOnGestureListener,HahaGestu ...
- android 表格控件点击事件,Android零基础入门|RecyclerView点击事件处理
原标题:Android零基础入门|RecyclerView点击事件处理 前面两期学习了RecyclerView的简单使用,并为其item添加了分割线.在实际运用中,无论是List还是Grid效果,基本 ...
- Fragment监听返回键
Activity 比较容易监听物理键返回事件(onBackPressed):Fragment却不能 假设一个FragmentActivity包含3个Fragment,用户一般期望在返回时,逐层返回到F ...
- android怎么设置按钮点击事件监听,Android点击Button按钮的四种事件监听方法总结...
首先我们在activity_main.xml里面先定义一个Button空间 好,现在要我们来看点击事件的四种写法: 1.最常见的一种写法--匿名的内部类做为事件监听器类 package com.bas ...
- Android 更改软键盘右下角按键的样式以及监听此键的方法
一.我们在开发Android App时有时候会遇到更改软键盘右下角按键的样式 我们可以随自己的需求更改软键盘右下角的显示样式,例如:搜索,下一步,Q(搜索图标) 具体对应: actionNone : ...
- 优雅的让Fragment监听返回键
转载请注明出处:http://write.blog.csdn.net/postedit/40507387 Activity可以很容易的得到物理返回键的监听事件,而Fragment却不能.假设Fragm ...
- Android Fragment 监听返回键
直接给代码*-* Fragment: public boolean onKeyDown(int keyCode, KeyEvent event){if ((keyCode == KeyEvent.KE ...
- 【Android 插件化】Hook 插件化框架 ( Hook 实现思路 | Hook 按钮点击事件 )
Android 插件化系列文章目录 [Android 插件化]插件化简介 ( 组件化与插件化 ) [Android 插件化]插件化原理 ( JVM 内存数据 | 类加载流程 ) [Android 插件 ...
- Android Listview中Button按钮点击事件冲突解决办法
今天做项目时,ListView中含有了Button组件,心里一早就知道肯定会有冲突,因为以前就遇到过,并解决过,可惜当时没有记录下来. 今天在做的时候,继续被这个问题郁闷了一把,后来解决后,赶紧来记录 ...
最新文章
- bugFree与zentao
- 图像处理之添加图像水印
- twisted mysql_Twisted MySQL adbapi返回字典
- 微软将为Linux 操作系统带来TEE的支持:TEE(Trusted Execution Environment,可信执行环境)
- jQuery 树形控件 TreeView 的 Bug
- 安装SQL 2016的时候 Microsoft R Open 和 Microsoft R Server 安装文件的位置
- MacOS壁纸文件夹如何查找
- 单变量微积分笔记——无穷级数,泰勒展开及欧拉公式的证明
- 三个月追求金牛全过程(图
- HDU 6287 口算训练(分解质因子 + 二分下标)
- Mysql性能指标量化指标
- java安装未指定的错误_安装redistributable(x64)出现0x80240017未指定的错误
- Node——npm常用命令
- windows网络适配器 黄色下三角
- 计算机学院青年教师讲课,【教学动态】计算机科学与信息工程学院举办首届中青年教师讲课大赛...
- MySQL5.7乱码问题
- Android平台简介
- TransE论文第4节:实验
- python运算结果是fasls的代码_《利用Python进行数据分析》--整理学习
- 7-65 字符串替换 (15 分) 本题要求编写程序,将给定字符串中的大写英文字母按以下对应规则替换: 原字母	对应字母 A	Z B	Y C	X D	W …	… X	C Y	B Z	A
热门文章
- java invokelater 以及invokeandwait
- error C2871: #39;std#39; : does not exist or is not a namespace
- 超级楼梯HDU2041
- [原]最大流, 最小分割分析
- POJ3251 Big Square【水题】
- Python 标准库 —— 邮件(email)与邮件服务器(smtplib)
- Makefile 文件怎么写
- Python、Java 在线笔试
- 历法 —— 十二地支与二十八星宿
- 浏览器字体大小怎么调_音乐文件如何升降调