zoukankan      html  css  js  c++  java
  • activity 嵌套 activity

    网页里面能够嵌套网页,那Android的Activity能不能嵌套呢?答案是肯定。Android给我们提供了ActivityGroup和TabActivity,当我们至需要嵌套一个Activity或者不方便继承ActivityGroupF的时候,我们可以参考ActivityGroup的实现,比较关键的是LocalActivityManager。

    最外层Activity


        public class ViewActivity extends Activity{  
             protected LocalActivityManager mLocalActivityManager;  
             private FrameLayout mBoday;  
               
             @Override  
             protected void onCreate(Bundle savedInstanceState) {  
                 super.onCreate(savedInstanceState);  
                   
                 setContentView(R.layout.base_layout);  
                   
                 mLocalActivityManager = new LocalActivityManager(this, true);  
                   
                 Bundle states = savedInstanceState != null? (Bundle) savedInstanceState.getBundle(STATES_KEY) : null;  
                 mLocalActivityManager.dispatchCreate(states);  
                   
                   
                 Intent intent = new Intent();  
                 intent.setAction("android.settings.SETTINGS");  
                 intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);  
                 View v = mLocalActivityManager.startActivity("one", intent).getDecorView();  
                 mBoday.removeAllViews();  
                 mBoday.addView(v);  
             }  
               
         }  

    LocalActivityManager.startActivity()需要传入里程Activity信息,就跟Activity.startActivity()打开新的Activity的Intent参数一样,不同的是LocalActivityManager.startActivity()把传入的Activity信息作为嵌套Activity打开。


        <?xml version="1.0" encoding="utf-8"?>  
         <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
             android:layout_width="fill_parent"  
             android:layout_height="fill_parent"  
             android:orientation="vertical" >  
           
             <FrameLayout  
         android:id="@+id/frame"  
                 android:layout_width="fill_parent"  
                 android:layout_height="fill_parent">  
             </FrameLayout>  
           
         </LinearLayout>  

    外层Activity布局文件可以随意布置,但记得包涵里层Activty的布局标签,就像View是不能正常打开的里层Activity的。

    外层Activity布局文件除了FrameLayout还可以使用LinearLayout作为显示里层Activity的视图。

    但是里层Activity如果是ListActivity或者关于List相关属性的都不能正常显示。

    目前猜测是因为ListActivity一类没有更新显示。


  • 相关阅读:
    MyEclipse 8.5 M1注册码(转)
    非常经典有深度的电影英文台词(转)
    pb函数库 DataWindow常用函数(转)
    35岁以前把下面十件事做好(转)
    相识如茶,相思似酒(转)
    常用的SQL 脚本
    SQL Server Mobile 数据类型
    人生的35个好习惯 给人生的25条建议(转)
    sybase数据库相关
    模板
  • 原文地址:https://www.cnblogs.com/xiaowangba/p/6314546.html
Copyright © 2011-2022 走看看