android 返回功能,Android实现返回键功能
记录用户点击的操作历史,使用栈数据结构,频繁的操作栈顶(添加,获取,删除),使用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实现返回键功能相关推荐
- android关机、重启等电源键功能实现
背景:小黑,玩机刷机日常关机重启少不了使用长按电源键,一个按一个心疼,这强迫症可能很多人有,担心按坏了.手机自带又没有这般快捷键,所以就想下载个关机重启的软件来释放电源键,无奈网上好用的软件广告太多或 ...
- Android 系统修改长按关机键功能
系统环境 瑞星微 px30 android 8.1系统 要实现的功能 原本长按power键的功能是弹出一个选择对话框,关机和重启功能,长按两个选择项会提示是否要进入安全模式,现将它改成长按恢复出厂功能 ...
- android中的后退功能,如何在Android应用中实现一个返回键功能
如何在Android应用中实现一个返回键功能 发布时间:2020-11-23 16:28:56 来源:亿速云 阅读:89 作者:Leah 今天就跟大家聊聊有关如何在Android应用中实现一个返回键功 ...
- android 虚拟返回键功能_Android返回键功能的实现方法
本文实例讲述了Android返回键功能的实现方法.分享给大家供大家参考.具体如下: 在开发android应用时,常常通过按返回键(即keyCode == KeyEvent.KEYCODE_BACK)就 ...
- Android 自带的返回键功能
两步实现 Android 自带返回功能和返回图片 1. 在layout 中的布局的头部添加下面代码 <android.support.v7.widget.Toolbarandroid:id=&q ...
- 【Android 小功能】双击返回键返回桌面(进入后台),再次进入不加载启动页,物理键双击退回桌面
目前很多 APP 点击返回键(或者左滑)返回桌面,都是不退出 APP,只是进入后台,再次进入 APP 回到之前的页面,不用刷新或者重新创建.自己也觉得这样用户体验会好很多,虽然有一个弊端就是不结束进程 ...
- Android悬浮球及全局返回功能的实现
先来一发效果图: 前面是返回效果,最后一下是实现home键的效果 前言 很久之前,就想做一个悬浮球了,毕竟是程序猿嘛,有想要的功能的时候总是想自己尝试一下,于是兴致勃勃的找了好久,都没有找到全局返回功 ...
- 【Android】Listview返回顶部,快速返回顶部的功能实现,详解代码。
2019独角兽企业重金招聘Python工程师标准>>> 作者:程序员小冰,GitHub主页:https://github.com/QQ986945193 新浪微博:http://we ...
- android右滑返回动画,Android仿微信右滑返回功能的实例代码
先上效果图,如下: 先分析一下功能的主要技术点,右滑即手势判断,当滑到一直距离时才执行返回,并且手指按下的位置是在屏幕的最左边(这个也是有一定范围的), 这些可以实现onTouchEvent来实现. ...
最新文章
- 客户端渲染 服务端渲染_这就是赢得客户端渲染的原因
- linux环境对apk文件写入数据,Linux下7zip命令apk中插入文件标识渠道批量打包
- 一位年轻董事长给大学生的18条好建议
- 服务器,工作站和终端机
- 红外线接受程序 理解
- 信息系统项目管理知识--项目成本管理
- eclipse占用内存过大_Java性能调优学习(三)-jmap+mat分析内存溢出问题实战
- xml控制html样式,XML与CSS综合设置实例
- latex 数学公式
- Android开发14——监听内容提供者ContentProvider的数据变化
- C++ getline在VC6.0的一个bug(处理方法)(转)
- VS2013 产品密钥 – 所有版本-亲试,好使!!
- 《自然语言处理实战入门》---- 第1课:自然语言处理简介
- 【Web前端】笔试题含解析
- mysql sqlserver 跨库查询_SQLServer跨库查询
- 76 爬虫 - Scrapy案例(阳光热线问政平台)
- 文本自动生成研究进展与趋势之总结与展望
- Python爬取豆瓣top榜电影
- centos7安装mplayer+smplayer
- 中国计量大学计算机考研难吗,去中国计量大学读研好吗 考研题难吗_