Android开发实现Fragment监听返回键事件功能的方法
2017-11-20 10:38
696 查看
本文实例讲述了Android开发实现Fragment监听返回键事件功能的方法。分享给大家供大家参考,具体如下:
前面的文章Android开发教程之Fragment定义、创建与使用方法详细讲述了Fragment的基本概念与用法。这里再来分析一下Fragment监听返回键事件的具体应用。
背景
项目要求用户注册成功后进入修改个人资料的页面,且不允许返回到上一个页面,资料修改完成后结束当前页面,进入APP主页。
由于是使用多个Fragment完成注册流程,就需要Fragment监听用户点击手机上的返回按钮,查了一些资料,加上自己使用过程中发现的问题,特此记录,帮助更多有此需求的朋友
代码实现
XXX_Fragment @Override public void onResume() { super.onResume(); getFocus(); } //主界面获取焦点 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) { // 监听到返回按钮点击事件 ...... return true; } return false; } }); }
以上代码是stackoverflow.com中找到的一个解决方案,但是在使用时,由于Fragment页面里可能有其他能获取焦点的View(例如EditText),会导致监听失效,点击返回键会返回到上个页面。
更完善的解决方案:
除了上面的代码,我们需要对可以获取焦点的View的setOnKeyListener进行处理,这里以一个EditText为例:
//private EditText nickname; nickname.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(nickname.getWindowToken(), 0); //使得根View重新获取焦点,以监听返回键 getFocus(); } return false; } });
更多关于Android相关内容感兴趣的读者可查看本站专题:《Android基本组件用法总结》、《Android开发入门与进阶教程》、《Android布局layout技巧总结》、《Android视图View技巧总结》、《Android编程之activity操作技巧总结》、《Android资源操作技巧汇总》及《Android控件用法总结》
希望本文所述对大家Android程序设计有所帮助。
您可能感兴趣的文章:
- Android基础之使用Fragment控制切换多个页面
- Android基础之Fragment与Activity交互详解
- Android Fragment 基本了解(图文介绍)
- Android的Fragment的生命周期各状态和回调函数使用
- Android 管理Activity中的fragments
- android开发教程之实现滑动关闭fragment示例
- FrameLayout和Fragment处理Android应用UI布局实例
- Android使用Fragment打造万能页面切换框架
- Android App中使用ViewPager+Fragment实现滑动切换效果
- Android中fragment与activity之间的交互(两种实现方式)
相关文章推荐
- Android开发使用Activity嵌套多个Fragment实现横竖屏切换功能的方法
- Android 开发中使用Fragment跳转到下一个Fragment(使用add方法),并实现返回键和自定义返回键。
- Android开发之Button事件实现与监听方法总结
- Android开发:监听当前View的左右滑动事件,并返回给当前的activity或者fragment
- Android开发之布局文件中实现OnClick事件关联处理方法
- Android开发监听返回键返回上个网页或者fragment
- 【Android SDK开发】各种Android Dialog创建及其监听事件实现
- Android通讯录开发之删除功能的实现方法
- android开发游记:APP自动更新功能的快速集成和实现方法讲解
- Android返回键功能的实现方法
- Android开发学习笔记:Button事件实现方法的总结
- [置顶] 【Android】双击返回键,退出android应用程序 双击两次退出程序提示功能 三种实现方法
- 【Android SDK开发】各种Android Dialog创建及其监听事件实现
- Android UI事件处理——实现事件监听接口的4种方法
- Android开发实现按两次返回键退出的方法
- Android 程式开发:(十一)监听UI事件 —— 11.1重写Activity中的方法
- Hybrid开发 Sencha pinch事件的监听实现图片的缩放功能
- Android 实现事件监听的两个方法
- 实现在android开发中重写返回键处理事件
- Android返回键功能的实现方法