Android实现返回键操作思路
2017-02-11 17:13
501 查看
记录用户点击的操作历史,使用栈数据结构,频繁的操作栈顶(添加,获取,删除),使用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<String> HISTORY=new LinkedList<String>(); /** * 处理返回键 * @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 自定义按钮实现 home键 和返回键
- android如何实现双击返回键退出 的修正版
- Android中的“再按一次返回键退出应用”实现,类似网易新闻
- Android 实现按两次返回键退出程序
- Android“再按一次返回键退出程序”实现
- android程序屏蔽返回键退出,但支持返回键长按退出的实现
- Android中实现“程序前后台切换效果”和“返回正在运行的程序,而不是一个新Activity”
- android点击返回键退出应用的实现
- Android中的“再按一次返回键退出程序”实现
- Android中实现“程序前后台切换效果”和“返回正在运行的程序,而不是一个新Activity”
- android,返回前一个activity的简单实现 及activity跳转的简单操作
- Android中的“再按一次返回键退出程序”实现
- 自定义按钮实现android 返回按钮 事件
- Android下两次返回键完全退出程序以及提示对话框的实现
- android实现系统的返回键和home键
- 自定义按钮实现Android 返回按钮事件
- android 自定义按钮实现 home键 和返回键
- Android 返回键实现home键的功能
- Android “再按一次返回键退出程序”实现介绍
- Android中实现“程序前后台切换效果”和“返回正在运行的程序,而不是一个新Activity”