使用ActivityGroup来切换Activity和Layout

在一个主界面中做Activity切换一般都会用TabActivity,使用方便,Activity互相之间相对独立,但是可定制性不强,而且修改起来很麻烦。当然也可以把layout分开,把逻辑代码全写在主界面的逻辑代码中,但是很明显可维护性相当差,这里通过ActivityGroup来解决这个问题。 

[img]http://dl.iteye.com/upload/attachment/446492/bce292bd-14cc-3b31-81fa-5b358c8a43d0.jpg[/img]
 

要求点击底部不同图片按钮切换不同的Activity,并在中间显示Activity对应的ContentView 

二、 实现代码 


2.1  layout.xml 

Java代码  

1. <?xml version="1.0" encoding="utf-8"?>  
2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
3.     android:layout_width="fill_parent" android:orientation="vertical"  
4.     android:layout_height="fill_parent">  
5.     <LinearLayout android:gravity="center_horizontal"  
6.         android:background="@drawable/myinfor2" android:layout_width="fill_parent"  
7.         android:layout_height="wrap_content">  
8.         <TextView android:id="@+id/cust_title" android:textColor="@android:color/white"  
9.             android:textSize="28sp" android:text="模块1" android:layout_width="wrap_content"  
10.             android:layout_height="wrap_content"></TextView>  
11.     </LinearLayout>  
12.     <!-- 中间动态加载View -->  
13.     <ScrollView android:measureAllChildren="true" android:id="@+id/containerBody"  
14.         android:layout_weight="1" android:layout_height="fill_parent"  
15.         android:layout_width="fill_parent">  
16.     </ScrollView>  
17.     <LinearLayout android:background="@android:color/black"  
18.         android:layout_gravity="bottom" android:orientation="horizontal"  
19.         android:layout_width="fill_parent" android:layout_height="wrap_content">  
20.         <!-- 功能模块按钮1 -->  
21.         <ImageView android:id="@+id/btnModule1" android:src="@android:drawable/ic_dialog_dialer"  
22.             android:layout_marginLeft="7dp" android:layout_marginTop="3dp"  
23.             android:layout_marginBottom="3dp" android:layout_width="wrap_content"  
24.             android:layout_height="wrap_content" />  
25.         <!-- 功能模块按钮2 -->  
26.         <ImageView android:id="@+id/btnModule2" android:src="@android:drawable/ic_dialog_info"  
27.             android:layout_marginLeft="7dp" android:layout_marginTop="3dp"  
28.             android:layout_marginBottom="3dp" android:layout_width="wrap_content"  
29.             android:layout_height="wrap_content" />  
30.         <!-- 功能模块按钮3 -->  
31.         <ImageView android:id="@+id/btnModule3" android:src="@android:drawable/ic_dialog_alert"  
32.             android:layout_marginLeft="7dp" android:layout_marginTop="3dp"  
33.             android:layout_marginBottom="3dp" android:layout_width="wrap_content"  
34.             android:layout_height="wrap_content" />  
35.     </LinearLayout>  
36. </LinearLayout>  

2.2  TestView.java 
Java代码  

1. /** 
2.  * 使用ActivityGroup来切换Activity和Layout 
3.  * @author 农民伯伯 
4.  * @version 2010-9-7 
5.  *  
6.  */  
7. public class TestView extends ActivityGroup {  
8.   
9.     private ScrollView container = null;  
10.   
11.     @Override  
12.     protected void onCreate(Bundle savedInstanceState) {  
13.         super.onCreate(savedInstanceState);  
14.         // 隐藏标题栏  
15.         requestWindowFeature(Window.FEATURE_NO_TITLE);  
16.         // 设置视图  
17.         setContentView(R.layout.layout);  
18.   
19.         container = (ScrollView) findViewById(R.id.containerBody);  
20.   
21.         // 模块1  
22.         ImageView btnModule1 = (ImageView) findViewById(R.id.btnModule1);  
23.         btnModule1.setOnClickListener(new OnClickListener() {  
24.             @Override  
25.             public void onClick(View v) {  
26.                 container.removeAllViews();  
27.                 container.addView(getLocalActivityManager().startActivity(  
28.                         "Module1",  
29.                         new Intent(TestView.this, ModuleView1.class)  
30.                                 .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP))  
31.                         .getDecorView());  
32.             }  
33.         });  
34.   
35.         // 模块2  
36.         ImageView btnModule2 = (ImageView) findViewById(R.id.btnModule2);  
37.         btnModule2.setOnClickListener(new OnClickListener() {  
38.             @Override  
39.             public void onClick(View v) {  
40.                 container.removeAllViews();  
41.                 container.addView(getLocalActivityManager().startActivity(  
42.                         "Module2",  
43.                         new Intent(TestView.this, ModuleView2.class)  
44.                                 .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP))  
45.                         .getDecorView());  
46.             }  
47.         });  
48.   
49.         // 模块3  
50.         ImageView btnModule3 = (ImageView) findViewById(R.id.btnModule3);  
51.         btnModule3.setOnClickListener(new OnClickListener() {  
52.             @Override  
53.             public void onClick(View v) {  
54.                 container.removeAllViews();  
55.                 container.addView(getLocalActivityManager().startActivity(  
56.                         "Module3",  
57.                         new Intent(TestView.this, ModuleView3.class)  
58.                                 .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP))  
59.                         .getDecorView());  
60.             }  
61.         });  
62.     }  
63. }  
weixin073智慧旅游平台开发微信小程序+ssm后端毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
python017基于Python贫困生资助管理系统带vue前后端分离毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
weixin102旅游社交微信小程序+ssm后端毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值