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三大按钮,模拟Android导航栏三大金刚按键点击
模拟Android导航栏三大金刚按键点击 这里需要使用的是AccessibilityService无障碍辅助服务,可以全局监听界面所有的变化: 1.构建无障碍服务 public class Float ...
- Html怎样设置返回按钮,ppt怎么设置返回按钮
在制作幻灯片的时候,要怎么在幻灯片中设置一个返回按钮呢?下面学习啦小编就为你介绍ppt怎么设置返回按钮的方法啦! ppt怎么设置按钮的方法: 打开幻灯片文件,然后在菜单栏中点击"插入&quo ...
- iOS 自定义返回按钮,保留系统滑动返回
1.简介 使用苹果手机,最喜欢的就是用它的滑动返回.作为一个开发者,我们在编写很多页面的时候,总是会因为这样那样的原因使得系统的滑动返回不可用.使用导航栏push出一个控制器,我们在控制器中自定义了一 ...
- android 中间按钮突出,Android 实现 按钮从两边移到中间动画效果
Android 实现 按钮从两边移到中间动画效果html package org.shuxiang.test; import android.app.Activity; import android. ...
- android中按钮间隔,Android布局有2个均匀间隔的按钮
我有这个布局正常工作,相对布局与文本视图和两个按钮均匀分布在它下面. android:layout_width="fill_parent" android:layout_heigh ...
- android eclipse 按钮事件,android eclipse按钮的OnClick事件 - java
我有2个文件:main_activity.xml和home.xml.我在main_activity.xml中做了一个按钮 这是代码片段: xmlns:tools="http://schema ...
- android开发按钮颜色,Android编程实现简单设置按钮颜色的方法
本文实例讲述了Android编程实现简单设置按钮颜色的方法.分享给大家供大家参考,具体如下: 1.工程目录 a.在res目录-新建drawble文件夹放入自定义图片 2.main.xml androi ...
- android 方形按钮代码,Android中实现图文并茂的按钮实例代码
效果图如下所示: 代码: android:orientation="horizontal" android:layout_width="match_parent" ...
- kotlin android获取按钮,Kotlin Android按钮
Android Button是用于在单击时执行事件的按钮.它是android.widget.Button类下的一个UI组件.要了解有关Android Button的更多信息, 请参阅Android B ...
- android 去掉按钮阴影效果,Android去掉button阴影
鼠标右击[我的电脑]选择[属性] 在[属性]窗口中选择[高级]标签 在[高级]标签页面下选择[性能] [设置] 在打开的窗口中把:[在桌面上为图表标签使用阴影]前面选中,确定退出,就OK了. 今天弄一 ...
最新文章
- java 虚拟机 参数_Java虚拟机的参数
- python嵌入式系统开发_Python在开发实时嵌入式系统中的作用
- IT Monitor
- css - clearfix-清除浮动
- 听说你还不懂哈夫曼树和哈夫曼编码
- 【转载】(Git)用动图展示10大Git命令
- 计算机辅助设计利用计算机的,计算机基础知识:计算机辅助设计
- js中出现missing ) after argument list
- C# image转byte[] byte[]转image
- 第三章CDMA的原理和应用(1)
- 用R语言进行数据可视化的综合指南(一)
- Python 数据恢复实战 - 恢复U盘中的chk文件,以及误删的文件
- 【图像修复】论文阅读笔记 ----- 《Image inpainting based on deep learning: A review》
- 荣耀 MagicBook 系列新品发布会汇总:多款锐龙本、平板电脑登场~~~
- 隐私保护 举例_完美保护隐私
- java eav_entity-framework-4 – 实体框架4和ddd中的EAV
- 概念一: python 中列表 ,数组, 集合,字典;
- poj 1205 :Water Treatment Plants (DP+高精度)
- 华为手机的分类有何区别_华为手机系列如何选择-华为手机分类四个系列那个系列好-PC6教学视频...
- openal android 编译,Android OpenAL编译
热门文章
- 详解:MySQL数据库的权限管理和运维实操
- 剑指offer面试题09. 用两个栈实现队列(队列、栈)
- python实现人脸检测及识别(3)---- 识别真正的boss
- 核方法(kernel method)的主要思想
- leetcode 682. 棒球比赛(Baseball Game)
- FatFs源码剖析(转)
- 《PRML.Translation》pdf
- 使用HslCommunication实现PLC数据的远程客户端监视,以及web端实时监视,远程操作设备示例...
- 转件工程--实践者的研究方法阅读笔记1
- View的事件处理流程