尝试用mvp架构加dagger2来重写了一下,大致功能都实现了,还没有全部完成. 项目地址 接近完成的时候,想在天气信息页面实现一个很常见的功能,也就是点击屏幕下方的返回键的时候不是返回到上一个activity或者退出,而是提醒用户再按一次就会退出. 实现思路也很简单,就是对返回键的动作进行监听和拦截,然后重写成需要的动作,因为在我的程序中activity只作为调度器使用,真正的View功能在fragment中,所以返回键的动作捕捉只能以接口形式 BaseFragment实现这个接口,代码如下:…
最近在练习一个小项目,也就是郭霖大神的开源天气程序,尝试用mvp架构加dagger2来重写了一下,大致功能都实现了,还没有全部完成. 项目地址 接近完成的时候,想在天气信息页面实现一个很常见的功能,也就是点击屏幕下方的返回键的时候不是返回到上一个activity或者退出,而是提醒用户再按一次就会退出. 实现思路也很简单,就是对返回键的动作进行监听和拦截,然后重写成需要的动作,因为在我的程序中activity只作为调度器使用,真正的View功能在fragment中,所以返回键的动作捕捉只能以接口形…
代码如下: class XXXFrgmt : Fragment() { override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View? { ... return v } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCr…
      我在做应用时遇到一个问题.就是在启动主页面时须要预先载入一些数据.我是在一个载入页中处理完这些数据然后再转到主页面.但当我在主页面中按返回键时,系统会返回载入页面.我不希望载入页在使用完之后还被保留在任务中. Android的官方文档中这样描写叙述的返回栈.任务和activity的默认关系: 1:当从Activity A中启动Activity B时.Activity A停止,可是保存了它的状态(比方,滚动位置和表单中的文字).假设当用户在Activity B中按了返回键,Activi…
Activity可以很容易的得到物理返回键的监听事件,而Fragment却不能.所以使用到了以下的方法. 首先创建一个抽象类BackHandledFragment,该类有一个抽象方法onBackPressed(),所有BackHandledFragment的子类在onBackPressed方法中处理各自对Back事件的消费逻辑.onBackPressed返回布尔值,宿主FragmentActivity将会根据该方法的返回值判断子Fragment是否有消费Back事件.此外,宿主FragmentA…
首先创建一个抽象类BackHandledFragment,该类有一个抽象方法onBackPressed(),所有BackHandledFragment的子类在onBackPressed方法中处理各自对Back事件的消费逻辑.onBackPressed返回布尔值,宿主FragmentActivity将会根据该方法的返回值判断子Fragment是否有消费Back事件.此外,宿主FragmentActivity还会保持一份当前Fragment的引用,当用户按下Back键时,宿主Activity会判断当…
转载请注明出处:http://write.blog.csdn.net/postedit/40507387 Activity可以很容易的得到物理返回键的监听事件,而Fragment却不能.假设FragmentActivity有三个Fragment,一般安卓用户期望点击返回键会一层层返回到FragmentActivity.当然,我们可以将每个Fragment对应的Transaction放到BackStack中,但是如果每个Fragment有对返回事件的特殊消费,那么在FragmentActivity…
如果移动端访问不佳,请尝试 Github版<–点击左侧 背景 项目要求用户注册成功后进入修改个人资料的页面,且不允许返回到上一个页面,资料修改完成后结束当前页面,进入APP主页. 由于是使用多个Fragment完成注册流程,就需要Fragment监听用户点击手机上的返回按钮,查了一些资料,加上自己使用过程中发现的问题,特此记录,帮助更多有此需求的朋友 代码实现 XXX_Fragment @Override public void onResume() { super.onResume(); ge…
Activity可以很容易的得到物理返回键的监听事件,而Fragment却不能.假设FragmentActivity有三个Fragment,一般安卓用户期望点击返回键会一层层返回到FragmentActivity.当然,我们可以将每个Fragment对应的Transaction放到BackStack中,但是如果每个Fragment有对返回事件的特殊消费,那么在FragmentActivity的onBackPressed()中的代码就会比较混乱,例如: @Override public void…
导语: 首先Cocos2d-x其中实现Menu和Back按键相对简单一点,而在资源较少的Cocos2d-html5其中.要实现返回还是有一点不一样的,并且有没有详细的demo.也就仅仅有自己去看api文档.这也是头痛的一件事情,下面总结和归纳在Cocos2d-html5其中.怎样实现返回键.和Menu键. 分析: cocos2d中眼下仅仅有Layer以及其子类可以获取用户输入.即触发用户输入的事件. 这个结论是我通过查看API文档推測的,由于要触发这些事件.必需要有setIsKeypadEnab…
在写webView中我们按一下返回键,退到上一个我们浏览的网页,到第一个页面时,按两下退出程序,且按一下时提示你在按一下退出程序 只要加上这个方法即可 public void onBackPressed() { //如果可以返回上一级,而不是直接退出应用程序 if (wv.canGoBack()) { wv.goBack(); } else { if ((System.currentTimeMillis() - exitTime) > 2000) { Toast.makeText(getAppl…
先看一段代码如何在Android中加入返回按键的响应 <span style="font-size:18px;">自己派生CCKeypadDelegate的子类,然后注册为键盘事件的委托调用 class MyKeypadDelegate:public CCKeypadDelegate { public: virtual void keyBackClicked(); virtual void keyMenuClicked(); }; m_pKeypadDlegate = ne…
回到目录 这个操作在原生android里是很容易实现的,在xamarin里也不难,在activity里有方法OnKeyDown,我们只需要重写一下就可以了,然后通过webView重新加载到要返回的页面即可,当然操作有些死板,但还是有着不错的效果!…
FragmentTransaction中先加入一个Fragment,这个Fragment就是当前要显示的Fragment, 当通过事件触发显示第二个Fragment时,在加入第二个Fragment并调用fragmentTransaction.addToBackStack(null); 在onBackPressed方法中调用mFragmentManager.popBackStack();回到第一个Fragment package com.example.fragmentdemo; import a…
https://www.cnblogs.com/lori/p/5088627.html DateTime? lastBackKeyDownTime; public override bool OnKeyDown(Keycode keyCode, KeyEvent e) { if (keyCode == Keycode.Back && e.Action == KeyEventActions.Down) { if (!lastBackKeyDownTime.HasValue || DateTi…
Fragment可以说是在Android开发必需要使用到技术,项目中的界面基本上都是使用Fragment来实现,而Activity只是作为Fragment的载体,但有些特殊情况下Fragment也不得不处理Back键,如果是Activity的话还好说,直接覆盖 Activity的onBackPressed 即可,但Fragment可就没有这么幸运了,你可能和我一样,最开始有这样的需求的时候都会想去覆盖Fragment的onBackPressed方法,但是事与愿违,Fragment中并没有这样的方…
在Activity,Service,Window中监听Home键和返回键的一些思考,如何把事件传递出来的做法! 其实像按键的监听,我相信很多人都很熟练了,我肯定也不会说这些基础的东西,所以,前期,还是一笔带过一下,我们重点说下后半部分吧 一.Activity监听返回键 这个其实大家都知道,首先我们要了解流程,你要屏蔽这个返回键,那你就要拿到这个返回键的事件了,所以我们要监听了,而在Activity中,有两种做法,首先,系统是提供了返回键的监听的 /** * 返回键监听 */ @Override…
本篇为继上片监听返回键基础下优化: 以下做返回键监听两种情况: import 'package:fluttertoast/fluttertoast.dart'; //提示第三方插件 1. 单击提示双击退出,双击时退出App DateTime _lastPressedAt; //上次点击时间 main.dart-MyApp中: home: WillPopScope( // 监听返回键Widget onWillPop: () async { // 点击返回键即触发该事件 if (_lastPress…
### 监听手机返回键(双击退出) ``` import 'package:fluttertoast/fluttertoast.dart'; //提示插件 class WillPopScopeTestRoute extends StatefulWidget { @override WillPopScopeTestRouteState createState() { return new WillPopScopeTestRouteState(); } } class WillPopScopeTes…
假设情景是这样的:在一个Activity中弹出一个PopupWindow,要求在按返回键时关闭该PopupWindow. 如果该PopupWindow是无焦点的(默认情况),那么可以在Activity中响应返回键(onBackPressed),然后关闭它. 如果该PopupWindow是有焦点的,那么在它弹出来之后,所有的按键和触摸事件都会被它截获,包括返回键. 让PopupWindow获得焦点有两种方法,第一种是在创建的时候指定,第二种是在创建之后,调用它的setFocusable方法指定.…
由于在自己做的东西中用到了就总结一下,自己做了测试 在一个程序运行中如果按 返回键  分别执行了 : onpause()     onStop()   onDestory()方法 如果点击 home键 则执行了  onPause()   onStop()方法  ,呵呵这个方法的介绍可以在以后写程序中在不同的方法中执行不同的方法 下边是实现两个按钮了 1.实现home键 Intent intent = new Intent(Intent.ACTION_MAIN); intent.setFlags(…
对于一个应用程序可能有很多个Activity,可能每个人并不想一个个的去关闭Activity,也有可能忘了,那怎么关闭所有的未关闭的Activity呢,其实有很多方法,但是我最喜欢的一种就是通过广播事件去关闭,这样简单易懂,方便操作,很快捷. 首先就是建立一个父类,让所有的activity继承父类,这样就不用每次都去注册广播,只要在父类注册好就行了,代码如下: package net.loonggg.test; import android.app.Activity; import androi…
最近游戏接入了一个私服平台,由于没有sdk,所以支付相关的操作需要在网页端进行,也就是说点击充值需要在游戏内部弹出一个网页,并定位到平台充值的地址.查阅相关资料后决定使用cocos2dx自带的WebView来完成这项任务.WebView的使用方式非常简单,代码如下: #include "ui/CocosGUI.h" using namespace cocos2d::experimental::ui; m_WebView = WebView::create(); // m_WebView…
现在的开发我们基本上都是一个主activity中放多个fragment,点击返回按钮的时候,直接退出主activity,但是我们在fragment中经常会弹出例如popupWindow这样的布局,用户一般点击返回按钮的时候是想让弹窗消失,而不是退出应用.如果你直接退出应用这样的用户体验就非常的不好,所以我们就需要在fragment中监听按钮的点击事件,做出对应的处理. 比较常见的场景: 在一个Fragment中按下返回键,先判断下PopupWindow是否显示,若显示,隐藏PopupWindow…
原文地址: https://blog.csdn.net/xichenguan/article/details/47030303 最近在研究   Android  编程方面的东西, 有了以下发现,  该部分代码直接放在APP的主界面的Activity中,亲自验证可行,感觉还不错. 其中,  KeyEvent.KEYCODE_BACK   是指用户按下返回键, KeyEvent.ACTION_DOWN  是指按下键的事件. 该部分代码意思就是 第一次按键返回的时候  提示   再按一次退出程序. 每…
在Fragment中使用了腾讯的X5 webview,虽然好用,但是在Fragment中传递消息困难,想要返回上一页,还得各种消息传递什么的,麻烦.可是在Fragment中又不能使用onKeyDown,那怎么办了? 哎,我是太菜了,也不想动脑子,那就在Fragment的最上面加了一个标题栏,里面放了一个textView标签,监听点击事件,用户点击时,就退回上一页,简单便捷,反正解决了问题就行. TextView txt_left=(TextView) view.findViewById(R.id…
Activty可以直接响应返回键,而Fragment却不行,可用如下方式: 创建一个抽象类BackHandledFragment,该类中有一个抽象方法onBackPress(),所有BackHandledFragment的子类在onBackPress()中处理各自对Back事件的响应逻辑.onBackPress()返回boolean值,宿主FragmentActivity将会根据该方法的返回值判断子Fragment是否有消费Back事件.此外,宿主FragmentActivity还会保持一份当前…
用户退出应用前给出一个提示是很有必要的,因为可能是用户并不真的想退出,而只是一不小心按下了返回键,大部分应用的做法是在应用退出去前给出一个Dialog,我觉得这样不太友好,用户还得移动手指去按dialog中的按钮.个人觉得“再按一次返回键退出程序”是best practice,实现也很简单,直接上代码: private long exitTime = 0; @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (…
用户退出应用前给出一个提示是很有必要的,因为可能是用户并不真的想退出,而只是一不小心按下了返回键,大部分应用的做法是在应用退出去前给出一个Dialog,我觉得这样不太友好,用户还得移动手指去按dialog中的按钮.个人觉得“再按一次返回键退出程序”是best practice,实现也很简单,直接上代码: private long exitTime = 0; @Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {    if…
ionic中android的返回键 在ionic框架中已经注册了几个返回事件,分别是 view sideMenu modal actionSheet popup loading 他们的优先级分别是 view: 100 sideMenu: 150 modal: 200 actionSheet: 300 popup: 400 loading: 500 现在我们首先来实现类似qq和微信的含有tabs的页面点击返回时退出应用,假设配置路由的时候在有tabs的页面中state的name都含有tab(注:代…