虚位以待(AD)
虚位以待(AD)
首页 > 软件编程 > Android编程 > Android实现返回键操作思路

Android实现返回键操作思路
类别: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<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 返回键