• 【转载】使用ActivityGroup来切换Activity和Layout


    一、效果图

         

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

      二、 实现代码

        2.1  layout.xml

    Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--><?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent" android:orientation="vertical"
        android:layout_height="fill_parent">
        <LinearLayout android:gravity="center_horizontal"
            android:background="@drawable/myinfor2" android:layout_width="fill_parent"
            android:layout_height="wrap_content">
            <TextView android:id="@+id/cust_title" android:textColor="@android:color/white"
                android:textSize="28sp" android:text="模块1" android:layout_width="wrap_content"
                android:layout_height="wrap_content"></TextView>
        </LinearLayout>
        <!-- 中间动态加载View -->
        <ScrollView android:measureAllChildren="true" android:id="@+id/containerBody"
            android:layout_weight="1" android:layout_height="fill_parent"
            android:layout_width="fill_parent">
        </ScrollView>
        <LinearLayout android:background="@android:color/black"
            android:layout_gravity="bottom" android:orientation="horizontal"
            android:layout_width="fill_parent" android:layout_height="wrap_content">
            <!-- 功能模块按钮1 -->
            <ImageView android:id="@+id/btnModule1" android:src="@android:drawable/ic_dialog_dialer"
                android:layout_marginLeft="7dp" android:layout_marginTop="3dp"
                android:layout_marginBottom="3dp" android:layout_width="wrap_content"
                android:layout_height="wrap_content" />
            <!-- 功能模块按钮2 -->
            <ImageView android:id="@+id/btnModule2" android:src="@android:drawable/ic_dialog_info"
                android:layout_marginLeft="7dp" android:layout_marginTop="3dp"
                android:layout_marginBottom="3dp" android:layout_width="wrap_content"
                android:layout_height="wrap_content" />
            <!-- 功能模块按钮3 -->
            <ImageView android:id="@+id/btnModule3" android:src="@android:drawable/ic_dialog_alert"
                android:layout_marginLeft="7dp" android:layout_marginTop="3dp"
                android:layout_marginBottom="3dp" android:layout_width="wrap_content"
                android:layout_height="wrap_content" />
        </LinearLayout>
    </LinearLayout>

    2.2  TestView.java

    Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->/**
     * 使用ActivityGroup来切换Activity和Layout
     * @author 农民伯伯
     * @version 2010-9-7
     * 
     */
    public class TestView extends ActivityGroup {
    
        private ScrollView container = null;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            // 隐藏标题栏
            requestWindowFeature(Window.FEATURE_NO_TITLE);
            // 设置视图
            setContentView(R.layout.layout);
    
            container = (ScrollView) findViewById(R.id.containerBody);
    
            // 模块1
            ImageView btnModule1 = (ImageView) findViewById(R.id.btnModule1);
            btnModule1.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    container.removeAllViews();
                    container.addView(getLocalActivityManager().startActivity(
                            "Module1",
                            new Intent(TestView.this, ModuleView1.class)
                                    .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP))
                            .getDecorView());
                }
            });
    
            // 模块2
            ImageView btnModule2 = (ImageView) findViewById(R.id.btnModule2);
            btnModule2.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    container.removeAllViews();
                    container.addView(getLocalActivityManager().startActivity(
                            "Module2",
                            new Intent(TestView.this, ModuleView2.class)
                                    .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP))
                            .getDecorView());
                }
            });
    
            // 模块3
            ImageView btnModule3 = (ImageView) findViewById(R.id.btnModule3);
            btnModule3.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    container.removeAllViews();
                    container.addView(getLocalActivityManager().startActivity(
                            "Module3",
                            new Intent(TestView.this, ModuleView3.class)
                                    .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP))
                            .getDecorView());
                }
            });
        }
    }

    代码说明:

          a).  ModuleView1、ModuleView2 ModuleView3分别继承自Activity。

          b).  想动态改变标题可以通过cust_title获取TextView进行设置。

  • 相关阅读:
    js中的原生Ajax和JQuery中的Ajax
    this的用法
    static的特性
    时政20180807
    java compiler没有1.8怎么办
    Description Resource Path Location Type Java compiler level does not match the version of the installed Java project facet Unknown Faceted Project Problem (Java Version Mismatch)
    分词器
    [数算]有一个工程甲、乙、丙单独做,分别要48天、72天、96天完成
    一点感想
    解析Excel文件 Apache POI框架使用
  • 原文地址:https://www.cnblogs.com/spmoon/p/3443234.html
Copyright © 2020-2023  润新知