package cn.fn;
import android.app.ActivityGroup;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.view.View.OnClickListener;
import android.widget.ImageView;
import android.widget.ScrollView;
public class GroupActivity extends ActivityGroup {
private ScrollView container = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 隐藏标题栏
requestWindowFeature(Window.FEATURE_NO_TITLE);
// 设置视图
setContentView(R.layout.main);
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(GroupActivity.this, Test1.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(GroupActivity.this, Test1.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(GroupActivity.this, Test1.class)
.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP))
.getDecorView());
}
});
}
}
package cn.fn;
import android.app.Activity;
import android.os.Bundle;
public class Test1 extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout);
}
}
<?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/icon" 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">
<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" />
<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" />
<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>
分享到:
相关推荐
ActivityGroup 代替 TabActivity 的用法 Android 开发中,TabActivity 已经被废除,而使用 ActivityGroup 来代替 TabActivity,可以更加自由灵活,少很多限制和依赖。ActivityGroup 是 Google 提供的一个非常优秀的...
在Android应用开发中,随着平台的发展,一些早期的技术逐渐被淘汰,比如Tabhost和ActivityGroup,它们曾经是实现界面切换和管理的常用方式。然而,随着Android SDK的更新,Fragment成为了更现代、更灵活的组件,可以...
不过需要注意的是,在后来的Android版本中,Google推荐使用Fragment和FragmentTabHost来代替ActivityGroup,因为Fragment提供了更好的生命周期管理和回退栈支持。尽管如此,对于理解Android历史上的界面管理机制,这...
这个压缩包"Android TabHost内嵌ActivityGroup界面管理源码.zip"提供了具体的实现示例,帮助开发者理解这种复杂的界面管理机制。 TabHost的工作原理是通过一个名为TabWidget的组件显示标签,而另一个名为...
但要注意,随着Android版本的更新,`ActivityGroup`在新的API级别中已经被弃用,建议使用`Fragment`和`FragmentTabHost`来代替。尽管如此,理解`ActivityGroup`对于理解`Fragment`的工作原理仍然很有帮助,特别是...
这个概念通常用于实现类似TabHost或者多级导航的效果,使得用户可以在一个单一的栈结构中进行多个界面间的交互。`ActivityGroup`在早期的Android版本中被用来解决在同一个栈内管理多个`Activity`的需求,但在Android...
ActivityGroup的使用可以帮助开发者实现类似TabHost或者Fragment的效果,但它是Android早期版本(API Level 8及以下)的一种解决方案。 在标题和描述中提到的“ActivityGroup(含listview不冲突)”可能是指在...
因此,随着Android SDK的发展,Google推荐使用Fragment来代替ActivityGroup。 Fragment是Android 3.0(API Level 11)引入的,它提供了一种在单个Activity中管理多个UI片段的方法,解决了ActivityGroup的一些痛点。...
在这个项目中,Fragment被用来代替已经过时的`ActivityGroup`和`TabActivity`,这使得代码更加现代化,遵循了最新的Android开发最佳实践。 `TabHost`是一个容器,用于组织多个`TabWidget`(标签)和一个`...
首先,`ActivityGroup`是Android早期版本中的一个类,它允许在一个`TabHost`或`FrameLayout`内嵌套多个Activity,从而实现选项卡内部的页面切换。然而,自Android 3.0(API级别11)开始,`ActivityGroup`已被废弃,...
在新的Android版本中,通常使用Fragments来代替ActivityGroup,因为Fragments提供了更好的复用性和灵活性。 2. **Service**:Service是在后台运行,不与用户界面直接交互的组件。它可以长时间执行任务,比如播放...
`ActivityGroup`是早期Android版本中用于在TabHost或者多窗口切换场景下管理子Activity的一种方式,虽然在最新的Android版本中已经被 Fragments 替代,但理解其工作原理仍然有助于我们理解Android的历史演进和当前的...
这个"ActivityGroup"可能是为了实现类似TabHost或者Navigation Drawer的效果,使得在切换不同界面时,不需要频繁地创建和销毁Activity,提高性能和用户体验。现在这种做法已经过时,被Fragment和FragmentTransaction...
在早期的Android版本中,ActivityGroup被用来管理在一个单独的栈中的多个Activity,从而实现类似TabHost的效果。然而,从Android 3.0(API级别11)开始,ActivityGroup已被废弃,推荐使用Fragment和...
1. **Fragment代替ActivityGroup** 在Android早期,开发者常使用ActivityGroup来实现类似Fragment的效果,即在一个Activity中嵌套多个子Activity。然而,这种方式存在许多问题,如内存泄漏、生命周期管理复杂以及...
`ActivityGroup`是Android早期API(在API 13被弃用)中的一个类,它允许我们在一个单独的`TabHost`或`Activity`中嵌套多个`Activity`。`ActivityGroup`的主要目的是在一个父`Activity`中管理和展示多个子`Activity`...
早期这种架构一直是使用tabhost+activitygroup来使用,随着fragment的出现及google官方也大力推荐使用fragment,后者大有代替前者之势。本文也使用fragment进行搭建,标题中的“经典”指这种交互经典,非本文的代码...