TabActivity中某一个tab内切换activity的方法
来源:互联网 发布:口袋三国 源码 编辑:程序博客网 时间:2024/06/03 19:15
之前写的程序要用到TabActivity,其中一个tab下有个多级列表,其实就是像“设置‘切换页面一样,倒是如果直接启动一个activity,你会发现这个activity会变成全屏的,和之前的TabActivity半毛钱关系木有,所以,当时我感觉这个问题很麻烦呢。
后来我进去TabActivity里面发现,TabActivity其实就是继承自ActivityGroup,然后想起来之前看到的一片文章,用ActivityGroup 来实现自定义TabActivity功能,到这里其实应该就很简单了,无非是为TabActivity增加一个subActivity,不过这里我嫌麻烦,索性不和TabActivity扯上关系,于是 就用了一个嵌套ActivityGroup 的实现方式,其实就是把一个TabActivity的子页换成一个ActivityGroup ,然后这个ActivityGroup 下面再放上几个subactivity。当然,ActivityGroup 继承自Activity,所以你也要把它当作activity去mainfest注册一下。
我马上就要坐车回家啦,时间比较紧,格式丑陋点,大家见谅。下面是关键代码:
TabActivity的用法我就不说了,一搜一大把,关键是ActivityGroup 内activity的切换,一个继承自ActivityGroup 的class MyActivityGroup,MyActivityGroup在TabActivity里面的使用和普通activity一样,两个子activitySubAActivity.class和SubBActivity.class, 首先是MyActivityGroup 启动时要启动一个subactivity,我们启动SubAActivity.class,MyActivityGroup 的onCreate实现,
复制代码
下面是从SubAActivity跳转到SubBActivity,(从SubBActivity返回SubAActivity实现方法一样,只不过放的位置不一样)假设我在一个listview的OnClickListener里面实现
复制代码
仔细观察你会发现,这两段代码的实现思路是一样的,另外对于activitygroup的实现方式也大概能有些推测。
后来我进去TabActivity里面发现,TabActivity其实就是继承自ActivityGroup,然后想起来之前看到的一片文章,用ActivityGroup 来实现自定义TabActivity功能,到这里其实应该就很简单了,无非是为TabActivity增加一个subActivity,不过这里我嫌麻烦,索性不和TabActivity扯上关系,于是 就用了一个嵌套ActivityGroup 的实现方式,其实就是把一个TabActivity的子页换成一个ActivityGroup ,然后这个ActivityGroup 下面再放上几个subactivity。当然,ActivityGroup 继承自Activity,所以你也要把它当作activity去mainfest注册一下。
我马上就要坐车回家啦,时间比较紧,格式丑陋点,大家见谅。下面是关键代码:
TabActivity的用法我就不说了,一搜一大把,关键是ActivityGroup 内activity的切换,一个继承自ActivityGroup 的class MyActivityGroup,MyActivityGroup在TabActivity里面的使用和普通activity一样,两个子activitySubAActivity.class和SubBActivity.class, 首先是MyActivityGroup 启动时要启动一个subactivity,我们启动SubAActivity.class,MyActivityGroup 的onCreate实现,
- protected void onCreate(Bundle savedInstanceState) {
- // TODO Auto-generated method stub
- super.onCreate(savedInstanceState);
- setContentView(R.layout.myactivitygroup);//其实这个layout里面只有一个id为myactivitygroup _view的LinearLayout
- container=(LinearLayout) findViewById(R.id.myactivitygroup _view);//
- container.removeAllViews();
- Intent intent=new Intent(MyActivityGroup .this,SubAActivity.class);
- intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
- Window subActivity=getLocalActivityManager().startActivity("SubAActivity",intent);
- View view=subActivity.getDecorView();
- container.addView(view); //下面的代码是为了保证subactivity显示正常,必须写在这行后面,不然的话,view对象尚未产生,然后。。。你懂的,addView应该也是用InFlate实现的
- LinearLayout.LayoutParams params=(LayoutParams) view.getLayoutParams();
- params.width=LayoutParams.FILL_PARENT;
- params.height=LayoutParams.FILL_PARENT;
- view.setLayoutParams(params);
- }
复制代码
下面是从SubAActivity跳转到SubBActivity,(从SubBActivity返回SubAActivity实现方法一样,只不过放的位置不一样)假设我在一个listview的OnClickListener里面实现
- list.setOnGroupClickListener(new OnGroupClickListener() {
- @Override
- public boolean onGroupClick(ExpandableListView parent, View v,
- int groupPosition, long id) {
- LinearLayout container=(LinearLayout)((ActivityGroup)getParent()).getWindow().findViewById(R.id.myactivitygroup _view);//注意这里,还是获取group的view
- container.removeAllViews();
- Intent intent=new Intent(SubAActivity.this, SubBActivity.class);
- intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
- Window subActivity=((ActivityGroup)ProvinceParkActivity.this.getParent()).getLocalActivityManager().startActivity("SubBActivity",intent);
- View view=subActivity.getDecorView();
- container.addView(view);
- LinearLayout.LayoutParams params=(LayoutParams) view.getLayoutParams();
- params.width=LayoutParams.FILL_PARENT;
- params.height=LayoutParams.FILL_PARENT;
- view.setLayoutParams(params);
- return true;
- }
- });
复制代码
仔细观察你会发现,这两段代码的实现思路是一样的,另外对于activitygroup的实现方式也大概能有些推测。
在subactivity中不要调用finish,不然整个activity树都会挂掉,你仔细观察subactivity和tab之间的切换,会发现很有意思。
转自:http://www.devdiv.com/forum.php?mod=viewthread&tid=47634&page=1
- TabActivity中某一个tab内切换activity的方法
- TabActivity中某一个tab内切换activity的方法
- TabActivity中某一个tab内切换activity页面的方法
- TabActivity中tab的数据刷新
- TabActivity和Activity中按键的监听
- 切换Activity中布局的setContentView( )方法
- TabActivity 之Tab的实现
- 安卓Android的TabActivity/TabHost实现每个Tab一个Activity(图标+文字)
- TabActivity中子Activity相互跳转,及某个Tab需弹出窗的解决方案
- 如何自定义FragmentTabHost中某一个Tab的点击效果
- Android 如何自定义FragmentTabHost中某一个Tab的点击效果
- TabActivity中,子activity的数据交互问题
- 【android】TabActivity实现手指左右滑动切换tab
- 【android】TabActivity实现手指左右滑动切换tab
- 【android】TabActivity实现手指左右滑动切换tab
- 关于activity的启动模式问题,生命周期和TabActivity是如何做到视图切换的
- 动态改变TabActivity标签的tab图片的两种方法浅析
- Android之Tab分页标签的实现方法一-----TabActivity和TabHost的结合(一)
- Android盈利模式,哪种更靠谱?
- CSS兼容表
- 黑马程序员-递归
- 嵌入式时代已经来临,你还在等什么?---循序渐进学习嵌入式开发技术
- android发短信实现短信分割
- TabActivity中某一个tab内切换activity的方法
- hdu 1233 还是畅通工程
- 银行升级提示借鉴
- VC continue break
- 如何计算广播地址
- Box2D中的b2DebugDraw使用示例
- MFC连接Access
- 创建存储过程的顺序
- 安全测试工具收集