天天看點

[Android]使用ActivityGroup來切換Activity和Layout

一、效果圖

     

    要求點選底部不同圖檔按鈕切換不同的Activity,并在中間顯示Activity對應的ContentView。

二、 實作代碼

    2.1  layout.xml

<?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"

        <!-- 功能子產品按鈕3 -->

        <ImageView android:id="@+id/btnModule3" android:src="@android:drawable/ic_dialog_alert"

</LinearLayout>

    2.2  TestView.java

/**

 * 使用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() {

                        "Module2",

                        new Intent(TestView.this, ModuleView2.class)

        // 子產品3

        ImageView btnModule3 = (ImageView) findViewById(R.id.btnModule3);

        btnModule3.setOnClickListener(new OnClickListener() {

                        "Module3",

                        new Intent(TestView.this, ModuleView3.class)

    }

}

    代碼說明:

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

      b).  想動态改變标題可以通過cust_title擷取TextView進行設定。

下一篇: css

繼續閱讀