zoukankan      html  css  js  c++  java
  • Android GroupActivity 管理子activity跳转和回退

    public class ModelGroupTab extends ActivityGroup {
    
        LinearLayout container;
        //用于管理本Group中的所有Activity       
        public static ActivityGroup group;  
        @Override  
        protected void onCreate(Bundle savedInstanceState) {  
            super.onCreate(savedInstanceState);  
          //  setContentView(R.layout.modeltabgroup);
           // container=(LinearLayout)findViewById(R.id.modeltabgroup);
            group = this;  
        }  
      
        @Override  
        public void onBackPressed() {         
            //把后退事件交给子Activity处理  
            group.getLocalActivityManager().getCurrentActivity().onBackPressed();  
        }  
      
        @Override  
        protected void onStart() {  
            super.onStart();  
            //要跳转的Activity  
            Intent intent = new Intent(this, A_Activity.class);  
            // 把Activity转换成一个Window,然后转换成View  
            Window w = group.getLocalActivityManager().startActivity(  
                    "FirstActivity", intent);  
            View view = w.getDecorView();  
            //container.removeAllViews();
            //container.addView(view);
            //设置要跳转的Activity显示为本ActivityGroup的内容  
            group.setContentView(view);  
        }  
    }

    把按返回按钮的事件交给子activity处理

    初始化要跳转到的activity

    LocalActivityManager通过startActivity(String id, Intent intent),可以与指定的Actiivty绑定,

    @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                   Intent intent = new Intent(A_Activity.this, B_Activity.class);  
                   // 把Activity转换成一个Window,然后转换成View  
                   Window w = ModelGroupTab.group.getLocalActivityManage().startActivity("BActivity",intent);  
                   View view = w.getDecorView();
                   LinearLayout container=(LinearLayout) ModelGroupTab.group.getWindow().findViewById(R.id.modeltabgroup);
                
                   //设置要跳转的Activity显示为本ActivityGroup的内容  
                   ModelGroupTab.group.setContentView(view);  
            }

    Aactivity跳转到Bactivity

    @Override
        public void onBackPressed() {
            // TODO Auto-generated method stub
            //super.onBackPressed();
            
              Intent intent = new Intent(B_Activity.this, A_Activity.class);  
             
              // 把Activity转换成一个Window,然后转换成View  
              
              String id=ModelGroupTab.group.getLocalActivityManager() .getCurrentId();
    
              Window w = ModelGroupTab.group.getLocalActivityManager()  
                      .startActivity("A_Activity",intent);  
              View view = w.getDecorView();  
              
                        //设置要跳转的Activity显示为本ActivityGroup的内容  
              ModelGroupTab.group.setContentView(view);  
              System.out.println("activity "+id+" finsih");
              ModelGroupTab.group.getLocalActivityManager().destroyActivity(id, true);
    
             
        }

    Bactivity回退到Aactivity,覆写

    public void onBackPressed() 

    写完设置跳转的代码后,finish当前activity,先获得当前绑定的activity id,然后通过

    ModelGroupTab.group.getLocalActivityManager().destroyActivity(id, true);销毁

  • 相关阅读:
    命令行界面下用户和组管理之groupadd的使用
    vue数据更新UI不刷新显示解决方案
    传入函数作为string.replace方法的第二个参数应用
    CSS 黑魔法-css控制图标颜色
    谈谈Web Components
    js函数组合
    “平滑滚动”效果骚操作
    BFC布局解析
    关于js构造函数return的一些解惑
    关于setTimeout和setInterval你不知道的事
  • 原文地址:https://www.cnblogs.com/cschen/p/3381352.html
Copyright © 2011-2022 走看看