`

ch015 Android ActivityGroup

阅读更多

--------------------------------------------素材----------------------------------------------------

 

--------------------------------------------AndroidManifest.xml----------------------------------

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

    package="com.ch15"

    android:versionCode="1"

    android:versionName="1.0" >

 

    <uses-sdk

        android:minSdkVersion="8"

        android:targetSdkVersion="15" />

 

    <application

        android:icon="@drawable/ic_launcher"

        android:label="@string/app_name"

        android:theme="@style/AppTheme" >

        <activity

            android:name=".MainActivity"

            android:label="@string/title_activity_main" >

            <intent-filter>

                <action android:name="android.intent.action.MAIN" />

 

                <category android:name="android.intent.category.LAUNCHER" />

            </intent-filter>

        </activity>

        <!-- 我的账户页 -->

        <activity android:name=".AccountActivity"></activity>

        <!-- 分类页 -->

        <activity android:name=".CategoryActivity"></activity>

        <!-- Home页 -->

        <activity android:name=".HomeActivity"></activity>

        <!-- 更多页 -->

        <activity android:name=".MoreActivity"></activity>

        <!-- 购物车页 -->

        <activity android:name=".ShopCartActivity"></activity>

    </application>

 

</manifest>

--------------------------------------------activity_main.xml-------------------------------------

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    android:id="@+id/LinearLayout1"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:orientation="vertical">

 

    <!-- tbar -->

    <include layout="@layout/tbar" />

    <!-- body -->

    <LinearLayout

        android:id="@+id/body"

        android:layout_width="fill_parent"

        android:layout_height="wrap_content"

        android:background="@drawable/body_back"  android:layout_weight="1">

    </LinearLayout>

 

    <!-- bbar -->

  <include layout="@layout/bbar"/>

 

</LinearLayout>

--------------------------------------------tbar.xml-----------------------------------------------

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    android:id="@+id/LinearLayout1"

    android:layout_width="fill_parent"

    android:layout_height="wrap_content"

    android:orientation="vertical" >

 

    <TextView

        android:id="@+id/title" android:background="@drawable/bar_top"

        android:layout_width="fill_parent"

        android:layout_height="wrap_content"

        android:layout_gravity="center"

        android:text="@string/hello_world"/>

 

</LinearLayout>

--------------------------------------------bbar.xml-----------------------------------------------

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="fill_parent"

    android:layout_height="wrap_content"

    android:background="@drawable/bar_bottom"  android:layout_weight="0.01">

 

    <RadioGroup

        android:layout_width="fill_parent"

        android:layout_height="fill_parent"

        android:orientation="horizontal" android:id="@+id/group">

 

        <RadioButton

            android:id="@+id/btnA"

            android:layout_width="fill_parent"

            android:layout_height="wrap_content"

            android:layout_weight="0.2"

            android:button="@drawable/bar_home_normal" />

 

        <RadioButton

            android:id="@+id/btnB"

            android:layout_width="fill_parent"

            android:layout_height="wrap_content"

            android:layout_weight="0.2"

            android:button="@drawable/bar_treasure_normal" />

 

        <RadioButton

            android:id="@+id/btnC"

            android:layout_width="fill_parent"

            android:layout_height="wrap_content"

            android:layout_weight="0.2"

            android:button="@drawable/bar_shoppingcart_normal" />

        <RadioButton

            android:id="@+id/btnD"

            android:layout_width="fill_parent"

            android:layout_height="wrap_content"

            android:layout_weight="0.2"

            android:button="@drawable/bar_account_normal" />

 

        <RadioButton

            android:id="@+id/btnE"

            android:layout_width="fill_parent"

            android:layout_height="wrap_content"

            android:layout_weight="0.2"

            android:button="@drawable/bar_more_normal" />

    </RadioGroup>

 

</LinearLayout>

--------------------------------------------activity_home.xml------------------------------------

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"

    android:layout_height="match_parent" >

 

    <TextView

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_centerHorizontal="true"

        android:layout_centerVertical="true"

        android:text="home"/>

 

</RelativeLayout>

 

--------------------------------------------activity_category.xml---------------------------------

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"

    android:layout_height="match_parent" >

 

    <TextView

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_centerHorizontal="true"

        android:layout_centerVertical="true"

        android:text="category"/>

 

</RelativeLayout>

 

--------------------------------------------activity_account.xml---------------------------------

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"

    android:layout_height="match_parent" >

 

    <TextView

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_centerHorizontal="true"

        android:layout_centerVertical="true"

        android:text="account"/>

 

</RelativeLayout>

 

--------------------------------------------activity_shopcart.xml--------------------------------

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"

    android:layout_height="match_parent" >

 

    <TextView

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_centerHorizontal="true"

        android:layout_centerVertical="true"

        android:text="shopcart"/>

 

</RelativeLayout>

 

--------------------------------------------activity_more.xml-----------------------------------

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"

    android:layout_height="match_parent" >

 

    <TextView

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_centerHorizontal="true"

        android:layout_centerVertical="true"

        android:text="more" />

 

</RelativeLayout>

--------------------------------------------MainActivity.java-----------------------------------

package com.ch15;

 

import android.app.ActivityGroup;

import android.content.Intent;

import android.os.Bundle;

import android.view.View;

import android.widget.LinearLayout;

import android.widget.RadioGroup;

import android.widget.RadioGroup.OnCheckedChangeListener;

import android.widget.TextView;

 

/**

 * 

 * 项目名称:com.ch15    

 * 类名称:MainActivity    

 * 类描述:启动页面

 * 创建人:方勇   

 * 创建时间:2012-11-23 下午10:26:03   

 * Copyright (c) 方勇-版权所有

 */

public class MainActivity extends ActivityGroup {

 

/* 底部菜单,bbar */

private RadioGroup group;

/* 中间部分,body */

private LinearLayout body;

/* 顶部菜单,tbar */

private TextView view_title;

 

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

findViews();

setListeners();

}

 

private void findViews() {

group = (RadioGroup) findViewById(R.id.group);

body = (LinearLayout) findViewById(R.id.body);

view_title = (TextView) findViewById(R.id.title);

}

 

private void setListeners() {

group.setOnCheckedChangeListener(onCheckedChangeListener);

}

 

private OnCheckedChangeListener onCheckedChangeListener = new OnCheckedChangeListener() {

 

@Override

public void onCheckedChanged(RadioGroup group, int checkedId) {

body.removeAllViews();

switch (checkedId) {

/* Home页 */

case R.id.btnA:

/* 设置跳转 */

Intent homeIntent = new Intent();

homeIntent.setClass(MainActivity.this, HomeActivity.class);

/*

 * 1、 Activity和Task(栈)的关系

 * 栈(Task)就像一个容器,而Activity就相当与填充这个容器的东西,

 * 第一个东西(Activity)则会处于最下面,最后添加的东西(Activity)则会在最低端。从Task中取出东西(Activity)则是从最顶端取出,也

 * 就是说最先取出的是最后添加的东西(Activity),一次类推,最后取出的是第一次添加的Activity,

 * 而Activity在Task中的顺序是 可以控制的,那则在Activity跳转时用到Intent Flag

 * 

 * 2、Intent.FLAG

 * 如果activity在task存在,拿到最顶端,不会启动新的Activity

 * intent.addFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT);

 * 

 * 如果activity在task存在,将Activity之上的所有Activity结束掉

 * intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

 * 

 * 默认的跳转类型,将Activity放到一个新的Task中

 * intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

 * 

 * 如果Activity已经运行到了Task,再次跳转不会再运行这个Activity

 * intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);

 */

 

homeIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

/* 获取跳转页面Activity绑定的Layout视图 */

View homeView = getLocalActivityManager().startActivity("home", homeIntent).getDecorView();

/* 添加Layout到Body布局中 */

body.addView(homeView);

/* 设置标题文本 */

view_title.setText("home");

break;

/* 分类页 */

case R.id.btnB:

/* 设置跳转 */

Intent categoryIntent = new Intent();

categoryIntent.setClass(MainActivity.this, CategoryActivity.class);

 

categoryIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

 

View categoryView = getLocalActivityManager().startActivity("category", categoryIntent).getDecorView();

body.addView(categoryView);

 

view_title.setText("category");

break;

/* 购物车页 */

case R.id.btnC:

/* 设置跳转 */

Intent shopcartIntent = new Intent();

shopcartIntent.setClass(MainActivity.this, ShopCartActivity.class);

 

shopcartIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

 

View shopcartView = getLocalActivityManager().startActivity("shopcart", shopcartIntent).getDecorView();

body.addView(shopcartView);

 

view_title.setText("shopcart");

break;

/* 我的账户页 */

case R.id.btnD:

/* 设置跳转 */

Intent accountIntent = new Intent();

accountIntent.setClass(MainActivity.this, AccountActivity.class);

accountIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

View accountView = getLocalActivityManager().startActivity("account", accountIntent).getDecorView();

body.addView(accountView);

view_title.setText("account");

break;

/* 更多页 */

case R.id.btnE:

/* 设置跳转 */

Intent moreIntent = new Intent();

moreIntent.setClass(MainActivity.this, MoreActivity.class);

moreIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

View moreView = getLocalActivityManager().startActivity("more", moreIntent).getDecorView();

body.addView(moreView);

view_title.setText("more");

break;

}

 

}

 

};

}

 

--------------------------------------------HomeActivity.java-----------------------------------

package com.ch15;

 

import android.app.Activity;

import android.os.Bundle;

/**

 * 

 * 项目名称:com.ch15    

 * 类名称:HomeActivity    

 * 类描述: 首页

 * 创建人:方勇   

 * 创建时间:2012-11-23 下午10:25:51   

 * Copyright (c) 方勇-版权所有

 */

public class HomeActivity extends Activity {

 

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_home);

    }

 

}

--------------------------------------------CategoryActivity.java-------------------------------

package com.ch15;

 

import android.app.Activity;

import android.os.Bundle;

/**

 * 

 * 项目名称:com.ch15    

 * 类名称:CategoryActivity    

 * 类描述:  分类页

 * 创建人:方勇   

 * 创建时间:2012-11-23 下午10:25:34   

 * Copyright (c) 方勇-版权所有

 */

public class CategoryActivity extends Activity {

 

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_category);

    }

}

 

--------------------------------------------AccountActivity.java--------------------------------

package com.ch15;

 

import android.app.Activity;

import android.os.Bundle;

/**

 * 

 * 项目名称:com.ch15    

 * 类名称:AccountActivity    

 * 类描述: 我的账户页

 * 创建人:方勇   

 * 创建时间:2012-11-23 下午10:25:18   

 * Copyright (c) 方勇-版权所有

 */

public class AccountActivity extends Activity {

 

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_account);

    }

 

}

 

--------------------------------------------ShopCartActivity.java-------------------------------

package com.ch15;

 

import android.app.Activity;

import android.os.Bundle;

 

public class ShopCartActivity extends Activity {

 

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_shopcart);

    }

 

 

}

 

--------------------------------------------MoreActivity.java-----------------------------------

package com.ch15;

 

import android.app.Activity;

import android.os.Bundle;

 

public class MoreActivity extends Activity {

 

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_more);

    }

 

 

}

 

--------------------------------------------效果图------------------------------------------------

 

<!--EndFragment-->

  • 大小: 141.1 KB
  • 大小: 136.9 KB
  • 大小: 6 KB
  • 大小: 9.2 KB
  • 大小: 8.7 KB
1
0
分享到:
评论

相关推荐

    android ActivityGroup的demo

    在Android开发中,ActivityGroup是一种特殊的Activity容器,它允许在一个Activity内部嵌套多个子Activity,形成类似多级菜单或者Tab效果。本示例"android ActivityGroup的demo"将深入探讨如何使用ActivityGroup来...

    android activitygroup底部菜单

    在Android应用开发中,ActivityGroup是一种特殊的容器,它允许在一个栈结构中管理多个子Activity,常见于早期Android版本(低于Android 3.0)的Tab布局或者自定义导航栏设计中。ActivityGroup的主要目的是实现类似...

    android activitygroup

    android activitygroup 的使用方法代码sample,可提供大家借鉴

    Android中ActivityGroup的应用

    ActivityGroup的用法,头部和...至于在Android在ActivityGroup里执行跳转详细介绍 请到我百度空间查看。运行效果也在下面地址可以看到。 http://hi.baidu.com/qinxiaowei137/blog/item/32a3761703ba6febc3ce798b.html

    android ActivityGroup demo

    android ActivityGroup demo,清晰简洁的一个例子

    android activitygroup中edittext无法删除

    现在的项目框架中很少用到activitygroup这种东西,谷歌也标识其为过时的产物了,但是在很多老项目中activitygroup还是普遍存在的,但是随之而来的就是activitygroup下的edittext一旦输入文字后便不能删除。...

    ActivityGroup应用实例

    在Android开发中,ActivityGroup是一种特殊的Activity类型,它允许开发者在一个Activity中嵌套其他Activity,形成多层级的界面结构。这个“ActivityGroup应用实例”应该是一个详细的教程,旨在帮助开发者理解如何...

    android activityGroup中edittext无法删除

    博客地址:http://blog.csdn.net/djy1992/article/details/47880719 网上有一种方法说是监听dispatchKeyEvent,然并卵啊。 建议使用这种方法,完美解决。

    android activitygroup demo

    在Android开发中,ActivityGroup是一个老概念,它属于早期Android版本(2.2及更低)中的TabHost实现的一部分,用于在一个Tab内管理多个Activity。尽管在Android 3.0(API级别11)之后,ActivityGroup被废弃,...

    Android开发—使用ActivityGroup来切换Activity和Layout

    Android 开发—使用 ActivityGroup 来切换 Activity 和 Layout Android 开发中,经常需要在不同的 Activity 之间进行切换,并且显示不同的ContentView。为了实现这个功能,我们可以使用 ActivityGroup 来管理不同...

    Android开发—使用ActivityGroup来切换Activity和Layout.pdf

    在Android开发中,ActivityGroup是一种特殊类型的Activity,它允许开发者在一个Activity内嵌套其他Activity,实现类似TabHost或Fragment的效果,但这是在Android早期版本(API级别较低)中的一种实现方式。...

    Android之ActivityGroup实现Tab分页标签

    ActivityGroup是Android早期版本(Android 2.x)中提供的一种特殊类型的Activity,它允许开发者在一个单独的Task中管理多个子Activity,从而实现类似Tab切换的效果。不过,随着Android版本的更新,ActivityGroup逐渐...

    Android Gallery+ActivityGroup实现滑动TAB独立Activity

    "Android Gallery+ActivityGroup实现滑动TAB独立Activity"是一个设计模式,它利用Android的Gallery组件和ActivityGroup来达到这一目的。在这个模式中,每个Tab都对应一个独立的Activity,从而提供更灵活和丰富的用户...

    Android项目ActivityGroup + GridView + ViewFlipper 实现选项卡.rar

    Android项目ActivityGroup + GridView + ViewFlipper 实现选项卡 本项目是一个基于Android平台的应用程序,它实现了选项卡功能。通过结合ActivityGroup、GridView和ViewFlipper组件,我们能够创建一个流畅、直观的...

    ActivityGroup实现Activit栈

    在Android开发中,ActivityGroup是早些版本API中提供的一种特殊类型的Activity,它允许开发者在一个TabHost或者帧布局(FrameLayout)中嵌套多个Activity,从而实现类似iOS中UINavigationController的堆叠管理器效果...

    activitygroup

    在Android开发中,`ActivityGroup`是一个特殊类型的`Activity`,它允许我们在一个父`Activity`中嵌套多个子`Activity`。这个概念通常用于实现类似TabHost或者多级导航的效果,使得用户可以在一个单一的栈结构中进行...

    使用ActivityGroup管理Activity

    `ActivityGroup`是早期Android版本(Android 2.x)提供的一种特殊类型的`ViewGroup`,允许在同一个`TabHost`或`FrameLayout`中嵌套显示多个Activity,以实现类似多级菜单或者子窗口的效果。但是,由于在Android 3.0...

    ActivityGroupDemo

    ActivityGroup是Android开发中的一个较老的概念,它属于TabHost的一种特殊实现,主要在早期的Android版本中用于在一个TabHost内部嵌套多个Activity。在现在的Android开发中,已经被Fragment和ViewPager等更现代、更...

    Android源码——TabHost内嵌ActivityGroup界面管理源码_new_17.7z

    在Android开发中,TabHost和ActivityGroup是两个关键组件,常用于实现多页面的导航和界面管理。在本文中,我们将深入探讨如何使用TabHost内嵌ActivityGroup来创建复杂的用户界面,并通过源码分析理解其工作原理。 ...

    安卓Android源码——TabHost内嵌ActivityGroup界面管理源码.zip

    本资源“安卓Android源码——TabHost内嵌ActivityGroup界面管理源码.zip”提供了一个实例,帮助开发者理解如何在TabHost中嵌入ActivityGroup来实现复杂的界面管理。 TabHost是Android SDK提供的一种用于创建多标签...

Global site tag (gtag.js) - Google Analytics