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(安卓)获取 H5中的按钮,点击
- android崩溃日志保存sdcard打开并发送到email
- Application requires API version 9. Device API version is 8
- 通信组件之Intent的基本使用
- Android(安卓)Studio提示端口号5037被占用,无法启动ADB解决办法
- Android中点击文字打开QQ对话
- 环境搭建
- android 2.3 GPS 移植实战 二
- js判断移动端是否安装某款app的多种方法