android开发: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一类没有更新显示。



  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值