ActivityGroup中切换Activity

    

转载时请注明转自:http://blog.csdn.net/sam_zhang1984

交流可加新浪微博:Android开发人

 

  通过在网上搜索,找到了很多关于ActivityGroup的用法,里面主要是“农民伯伯”的那个范例,让我学到了如何利用ActivityGroup实现底部固定,中间可动态加载Activity的界面。

 

      但一直有一个难言之隐没有解决:

      如果通过底问按钮打一个Activity A后,在A中点击某个按钮,想打开另一个 Activity B,此时如果是直接使用Intent,然后startActivity(intent)打开B的话,则会在全屏打开B,而不能保持 在ActivityGroup中间打开,保持底部按钮固定。

 

 

      后来一直没有想到办法,只能通过曲线救国:

 

      当在A中点击了按钮,则向 ActivityGroup发送消息,然后由 ActivityGroup再通过removeAllViews,最后和点击底部按钮打开A一样打开B。这种办法虽然可以,但程序搞得有点乱,而有时需要在两个Activity间传递数据会有点麻烦。

 

 

     终于,今天在网上看到了一个例子( http://www.cnblogs.com/tanlon/archive/2011/04/23/2025697.html ),

     终于解决了这个问题。虽然也是通过得到A的父亲 ActivityGroup,然后再进行 removeAllViews等操作,但至少不需要通过发送消息,弄得程序流程有点乱。

 

不废话了,直接贴代码:

ScrollView container=(ScrollView)((ActivityGroup)getParent()).getWindow().findViewById(R.id.containerBody); container.removeAllViews(); Intent intent=new Intent(A.this,B.class); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); Window subActivity=((ActivityGroup)A.this.getParent()).getLocalActivityManager().startActivity("B",intent); container.addView(subActivity.getDecorView());

你可能感兴趣的:(android,新浪微博)