记录用户点击的操作历史,使用栈数据结构,频繁的操作栈顶(添加,获取,删除),使用LinkedList

捕获用户的返回键操作,响应返回键,返回上一个界面

MainActivity.java

/**

* 返回键处理

*/

@Override

public boolean onKeyDown(int keyCode,KeyEvent event) {

if(keyCode==KeyEvent.KEYCODE_BACK){

boolean result=MiddleManager.getInstance().goBack();

if(!result){

Toast.makeText(MainActivity.this,"是否退出应用",1).show();

}

return false;

}

return super.onKeyDown(keyCode,event);

}

MiddleManager.java

//操作历史栈

private LinkedList HISTORY=new LinkedList();

/**

* 处理返回键

* @return

*/

public boolean goBack() {

//如果为空会抛异常

if(HISTORY.size()>0){

if(HISTORY.size()==1){

return false;

}

HISTORY.removeFirst();

if(HISTORY.size()>0){

String key=HISTORY.getFirst();

BaseView targetView=VIEWCACHE.get(key);

mainContainer.removeAllViews();

View child=targetView.getView();

mainContainer.addView(child);

child.startAnimation(AnimationUtils.loadAnimation(mainContainer.getContext(),R.anim.left_to_right));

currentView=targetView;

return true;

}

}

return false;

}

/**

* 加载界面

*/

public void loadView(Class extends BaseView> baseViewClass) {

BaseView baseView=null;

//判断是否存在

String key=baseViewClass.getSimpleName();

if(VIEWCACHE.containsKey(key)){

baseView=VIEWCACHE.get(key);

}else{

try {

Constructor extends BaseView> constructor;

constructor = baseViewClass.getConstructor(Context.class);

baseView=constructor.newInstance(mainContainer.getContext());

} catch (Exception e) {

e.printStackTrace();

}

VIEWCACHE.put(key,baseView);

}

mainContainer.removeAllViews();

View child=baseView.getView();

mainContainer.addView(child);

child.startAnimation(AnimationUtils.loadAnimation(mainContainer.getContext(),R.anim.left_to_right));

currentView=baseView;

//放入栈

HISTORY.addFirst(key);

}

以上所述是小编给大家介绍的Android实现返回键功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对编程小技巧网站的支持!

总结

以上是编程之家为你收集整理的Android实现返回键功能全部内容,希望文章能够帮你解决Android实现返回键功能所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

小编个人微信号 jb51ccc

喜欢与人分享编程技术与工作经验,欢迎加入编程之家官方交流群!

android 返回功能,Android实现返回键功能相关推荐

  1. android关机、重启等电源键功能实现

    背景:小黑,玩机刷机日常关机重启少不了使用长按电源键,一个按一个心疼,这强迫症可能很多人有,担心按坏了.手机自带又没有这般快捷键,所以就想下载个关机重启的软件来释放电源键,无奈网上好用的软件广告太多或 ...

  2. Android 系统修改长按关机键功能

    系统环境 瑞星微 px30 android 8.1系统 要实现的功能 原本长按power键的功能是弹出一个选择对话框,关机和重启功能,长按两个选择项会提示是否要进入安全模式,现将它改成长按恢复出厂功能 ...

  3. android中的后退功能,如何在Android应用中实现一个返回键功能

    如何在Android应用中实现一个返回键功能 发布时间:2020-11-23 16:28:56 来源:亿速云 阅读:89 作者:Leah 今天就跟大家聊聊有关如何在Android应用中实现一个返回键功 ...

  4. android 虚拟返回键功能_Android返回键功能的实现方法

    本文实例讲述了Android返回键功能的实现方法.分享给大家供大家参考.具体如下: 在开发android应用时,常常通过按返回键(即keyCode == KeyEvent.KEYCODE_BACK)就 ...

  5. Android 自带的返回键功能

    两步实现 Android 自带返回功能和返回图片 1. 在layout 中的布局的头部添加下面代码 <android.support.v7.widget.Toolbarandroid:id=&q ...

  6. 【Android 小功能】双击返回键返回桌面(进入后台),再次进入不加载启动页,物理键双击退回桌面

    目前很多 APP 点击返回键(或者左滑)返回桌面,都是不退出 APP,只是进入后台,再次进入 APP 回到之前的页面,不用刷新或者重新创建.自己也觉得这样用户体验会好很多,虽然有一个弊端就是不结束进程 ...

  7. Android悬浮球及全局返回功能的实现

    先来一发效果图: 前面是返回效果,最后一下是实现home键的效果 前言 很久之前,就想做一个悬浮球了,毕竟是程序猿嘛,有想要的功能的时候总是想自己尝试一下,于是兴致勃勃的找了好久,都没有找到全局返回功 ...

  8. 【Android】Listview返回顶部,快速返回顶部的功能实现,详解代码。

    2019独角兽企业重金招聘Python工程师标准>>> 作者:程序员小冰,GitHub主页:https://github.com/QQ986945193 新浪微博:http://we ...

  9. android右滑返回动画,Android仿微信右滑返回功能的实例代码

    先上效果图,如下: 先分析一下功能的主要技术点,右滑即手势判断,当滑到一直距离时才执行返回,并且手指按下的位置是在屏幕的最左边(这个也是有一定范围的),  这些可以实现onTouchEvent来实现. ...

最新文章

  1. 客户端渲染 服务端渲染_这就是赢得客户端渲染的原因
  2. linux环境对apk文件写入数据,Linux下7zip命令apk中插入文件标识渠道批量打包
  3. 一位年轻董事长给大学生的18条好建议
  4. 服务器,工作站和终端机
  5. 红外线接受程序 理解
  6. 信息系统项目管理知识--项目成本管理
  7. eclipse占用内存过大_Java性能调优学习(三)-jmap+mat分析内存溢出问题实战
  8. xml控制html样式,XML与CSS综合设置实例
  9. latex 数学公式
  10. Android开发14——监听内容提供者ContentProvider的数据变化
  11. C++ getline在VC6.0的一个bug(处理方法)(转)
  12. VS2013 产品密钥 – 所有版本-亲试,好使!!
  13. 《自然语言处理实战入门》---- 第1课:自然语言处理简介
  14. 【Web前端】笔试题含解析
  15. mysql sqlserver 跨库查询_SQLServer跨库查询
  16. 76 爬虫 - Scrapy案例(阳光热线问政平台)
  17. 文本自动生成研究进展与趋势之总结与展望
  18. Python爬取豆瓣top榜电影
  19. centos7安装mplayer+smplayer
  20. 中国计量大学计算机考研难吗,去中国计量大学读研好吗 考研题难吗_

热门文章

  1. java笔试题及解答专辑201710241450
  2. php设置密码,PHP为页面设置访问密码
  3. 一键部署 Spring Boot 到远程 Docker 容器,就是这么秀
  4. 递归习题-一步一个脚印
  5. 没有密码,怎么打开Excel?
  6. php学习笔记-面向对象
  7. C++高效率在m个单位中随机取n个单位的算法
  8. 为什么《梦幻西游》能这么长寿?大型复杂游戏如何长时间经营?
  9. JDBC中的executeQuery和executeUpdate
  10. hdu 5814 Find the Period