栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 移动开发 > Android

Android实现返回键操作思路

Android 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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();
  
  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 baseViewClass) {
    baseView baseView=null;
    //判断是否存在
    String key=baseViewClass.getSimpleName();
    if(VIEWCACHE.containsKey(key)){
      baseView=VIEWCACHE.get(key);
    }else{
      try {
 Constructor 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);
  }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持考高分网。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/159853.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号