4.在ActivityGroup里面如何访问子Activity的View 并操作它去改变UI?
要知道如何在ActivityGroup里面操作子Activity的布局View 那么得先了解一下,如何将Activity放入ActivityGroup 里面,这里我封装了一个小小的方法,公供参考:
/**
* 为ActivityGroup的一个ViewGroup设置动态的Activity View 对象
*
* @param 上下文
* @param LocalActivityManager对象
* @param ActivityGroup想要包容Activity
* View 对象的容器(ViewGroup)
* @param 通过Intent的意图打算启用哪个Activity类
* @param 开始Activity
* 设置的Id
*/
public static void getView(Context context, LocalActivityManager lam,
LinearLayout layout_load, Class<?> cls, String Id) {
Intent intent = new Intent(context, cls);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
Window w = lam.startActivity(Id, intent);
View v = w.getDecorView();
layout_load.removeAllViews();
layout_load.setPadding(5, 5, 5, 5);
layout_load.addView(v, new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.FILL_PARENT,
LinearLayout.LayoutParams.FILL_PARENT));
}
然后在ActivityGroup页面如此使用:
private LocalActivityManager manager; //声明一个LocalActivityManager对象
manager = getLocalActivityManager(); //得到这个对象
界面初始化时:
/**
* 初始化
*/
void init() {
comonHelp.getView(this, manager, main, preferenceSet.class, "swc");
}
有了设置的ID了,那就可以得到当前的Activity 了。
下面给出我用过的一段代码,以作参考:
SharedPreferences.Editor editor = getSharedPreferences(
"com.swc.yaomei_preferences",
Activity.MODE_PRIVATE).edit();
LocalActivityManager manager = getLocalActivityManager();
PreferenceActivity acitivty = (PreferenceActivity) manager
.getActivity("swc");
for (int i = 0; i < 9; i++) {
editor.putString("KEY_" + i, "N/A");
PreferenceScreenExt ext = (PreferenceScreenExt) acitivty
.findPreference("KEY_" + i);
RelativeLayout layout = (RelativeLayout) ext
.getLayout();
TextView summary = (TextView) layout.getChildAt(1);
summary.setText("N/A");
}
editor.commit();
System.gc();
上面的PreferenceActivity 是得到一个PreferenceAcitity 因为我是要修改位于ActivityGroup里面对应的Preference所以这里要获得一个PreferenceAcitity ,如果你是一个普通的Activity 直接得到一个Activity 对象就行,之后的操作都是一致的。
分享到:
相关推荐
5. **数据传递和通信**:由于子Activity在`ActivityGroup`内部运行,它们可以直接访问父`ActivityGroup`的成员变量,或者通过`LocalActivityManager`进行数据传递。不过,这种方式可能会导致代码复杂性增加,因此在...
要使用ActivityGroup,你需要继承自ActivityGroup,并且在子Activity中定义一个Layout,然后通过Group中的LocalActivityManager来管理这些子Activity。LocalActivityManager可以启动、销毁和切换子Activity,并且...
在Android开发中,ActivityGroup是一种特殊的布局管理器,它允许我们在一个TabHost或者StackView等容器内嵌套多个Activity,从而实现类似导航栏的效果,使得导航栏始终可见。这个技术在早期的Android版本中被广泛...
ActivityGroup是扩展自Activity的类,它允许我们在一个父Activity内部嵌套多个子Activity,这些子Activity就像是在同一个“窗口”中切换,而不会每次都创建新的任务栈。在TabHost与TabWidget结合使用时,通常每个Tab...
2. 子Activity的生命周期:当在ActivityGroup中启动一个新的Activity时,它的生命周期回调(如onCreate、onStart、onResume等)会被LocalActivityManager捕获,并在内部处理。这意味着子Activity的生命周期并不完全...
它允许开发者在一个Activity中展示多个小的Activity或者View,并通过标签页切换。TabHost由两部分组成:TabWidget(标签栏)和FrameLayout(内容区域)。开发者可以通过`TabSpec`对象来定义每个标签页的内容和行为,...
2. **View的添加和替换**:在ActivityGroup中,通常使用`LocalActivityManager`来管理子Activity,并通过`addWindow()`方法添加或替换视图。理解如何在不破坏UI一致性的情况下进行这些操作,是实现平滑过渡的关键。 ...
ActivityGroup则是在早期版本的Android系统中用来管理多个Activity在同一个父Activity内部进行切换的技术,它允许在一个View里展示多个Activity,从而实现类似Tab的效果。 **TabHost详解:** TabHost是Android SDK...
5. **处理回退栈**:由于`ActivityGroup`内的子`Activity`并不直接参与系统回退栈管理,开发者需要自行处理回退逻辑,例如在子`Activity`的`onBackPressed()`中调用`ActivityGroup`的相应方法,以便正确地回退到上一...
在Android开发中,Fragment是应用程序界面的一个模块化组件,它可以在Activity中添加、删除或替换。Fragment的概念是在Android 3.0(API级别11)引入的,旨在提高UI的可复用性和适应性,特别是在平板电脑等大屏幕...
在Tab分页的实现中,每个Tab下的内容可能由不同的Activity呈现,ActivityGroup可以帮助你在同一个父Activity下管理和切换这些子Activity,从而实现分页效果。然而,由于ActivityGroup存在一些问题,如内存泄漏、生命...
2. 在ActivityGroup中,你可以重写`onCreateView()`方法来创建一个新的View,这个View通常是内部Activity的布局。 3. 使用`LocalActivityManager`来管理内部的Activity。它提供了`startActivity()`和`getWindow()`等...
4. 使用`ViewFlipper`添加每个选项卡对应的子View,并在需要时切换显示。 5. 如果使用了`ActivityGroup`,还需要管理子Activity的生命周期,确保正确保存和恢复状态。 虽然现代Android开发更倾向于使用`Fragment`而...
在Android应用开发中,Activity是用户界面的基本单元,它负责处理用户交互并展示UI。然而,当需要在一个界面上展示多个相互关联的视图或子页面时,直接使用多个Activity可能会导致资源浪费和复杂的管理问题。早期的...
1. **ActivityGroup**:在早期的Android版本中,ActivityGroup被用来在同一个栈中管理多个子Activity,从而实现类似TabHost的功能,允许用户在不同界面之间平滑切换。不过,从Android 3.0(API级别11)开始,Android...
3. 在子Activity中替换内容:使用`LocalActivityManager.startActivity()`启动子Activity,并使用`LocalActivityManager.currentActivity()`获取当前活动的窗口对象,然后替换内容。 然而,尽管TabHost和...
**ActivityGroup** 是Android 2.3(API Level 9)及以下版本中提供的一种特殊类型的Activity,允许在一个栈中管理多个子Activity,形成类似TabHost的效果。然而,由于存在一些问题和限制(如生命周期管理复杂、不...
在这个例子中,我们没有看到完整的`onClickListener`实现,但通常情况下,它会更新`current`变量的值,然后根据新的值来调整选中Tab的标识(通常是通过改变选中图标的颜色或形状)。 `replace`方法是实现Tab切换的...
2. **ActivityGroup**: 在Android 2.x版本中,开发者可以使用ActivityGroup来实现类似嵌套Activity的效果,即在一个Activity中显示多个子Activity。ActivityGroup通过LocalActivityManager管理子Activity,可以实现...