`

在ActivityGroup里面如何访问子Activity的View 并操作它去改变UI

阅读更多

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(
5555);
        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 对象就行,之后的操作都是一致的。

分享到:
评论

相关推荐

    ActivityGroup Demo

    5. **数据传递和通信**:由于子Activity在`ActivityGroup`内部运行,它们可以直接访问父`ActivityGroup`的成员变量,或者通过`LocalActivityManager`进行数据传递。不过,这种方式可能会导致代码复杂性增加,因此在...

    ActivityGroup

    要使用ActivityGroup,你需要继承自ActivityGroup,并且在子Activity中定义一个Layout,然后通过Group中的LocalActivityManager来管理这些子Activity。LocalActivityManager可以启动、销毁和切换子Activity,并且...

    ActivityGroup使导航栏一直都在

    在Android开发中,ActivityGroup是一种特殊的布局管理器,它允许我们在一个TabHost或者StackView等容器内嵌套多个Activity,从而实现类似导航栏的效果,使得导航栏始终可见。这个技术在早期的Android版本中被广泛...

    Tab做成ActivityGroup的样子

    ActivityGroup是扩展自Activity的类,它允许我们在一个父Activity内部嵌套多个子Activity,这些子Activity就像是在同一个“窗口”中切换,而不会每次都创建新的任务栈。在TabHost与TabWidget结合使用时,通常每个Tab...

    ActivityGroupDemo

    2. 子Activity的生命周期:当在ActivityGroup中启动一个新的Activity时,它的生命周期回调(如onCreate、onStart、onResume等)会被LocalActivityManager捕获,并在内部处理。这意味着子Activity的生命周期并不完全...

    Android TabHost内嵌ActivityGroup界面管理源码-IT计算机-毕业设计.zip

    它允许开发者在一个Activity中展示多个小的Activity或者View,并通过标签页切换。TabHost由两部分组成:TabWidget(标签栏)和FrameLayout(内容区域)。开发者可以通过`TabSpec`对象来定义每个标签页的内容和行为,...

    完美实现ActivityGroup

    2. **View的添加和替换**:在ActivityGroup中,通常使用`LocalActivityManager`来管理子Activity,并通过`addWindow()`方法添加或替换视图。理解如何在不破坏UI一致性的情况下进行这些操作,是实现平滑过渡的关键。 ...

    Android代码-TabHost内嵌ActivityGroup界面管理源码.zip

    ActivityGroup则是在早期版本的Android系统中用来管理多个Activity在同一个父Activity内部进行切换的技术,它允许在一个View里展示多个Activity,从而实现类似Tab的效果。 **TabHost详解:** TabHost是Android SDK...

    ActivityGroup框架

    5. **处理回退栈**:由于`ActivityGroup`内的子`Activity`并不直接参与系统回退栈管理,开发者需要自行处理回退逻辑,例如在子`Activity`的`onBackPressed()`中调用`ActivityGroup`的相应方法,以便正确地回退到上一...

    Android Fragment应用实战Demo,向ActivityGroup说再见 源码程序

    在Android开发中,Fragment是应用程序界面的一个模块化组件,它可以在Activity中添加、删除或替换。Fragment的概念是在Android 3.0(API级别11)引入的,旨在提高UI的可复用性和适应性,特别是在平板电脑等大屏幕...

    基于GridView和ActivityGroup实现的TAB分页

    在Tab分页的实现中,每个Tab下的内容可能由不同的Activity呈现,ActivityGroup可以帮助你在同一个父Activity下管理和切换这些子Activity,从而实现分页效果。然而,由于ActivityGroup存在一些问题,如内存泄漏、生命...

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

    2. 在ActivityGroup中,你可以重写`onCreateView()`方法来创建一个新的View,这个View通常是内部Activity的布局。 3. 使用`LocalActivityManager`来管理内部的Activity。它提供了`startActivity()`和`getWindow()`等...

    ActivityGroup + GridView + ViewFlipper 实现选项卡.zip

    4. 使用`ViewFlipper`添加每个选项卡对应的子View,并在需要时切换显示。 5. 如果使用了`ActivityGroup`,还需要管理子Activity的生命周期,确保正确保存和恢复状态。 虽然现代Android开发更倾向于使用`Fragment`而...

    android Group实例代码下载

    在Android应用开发中,Activity是用户界面的基本单元,它负责处理用户交互并展示UI。然而,当需要在一个界面上展示多个相互关联的视图或子页面时,直接使用多个Activity可能会导致资源浪费和复杂的管理问题。早期的...

    ActivityGroup + GridView + ViewFlipper 实现选项卡毕业设计—(包含完整源码可运行).zip

    1. **ActivityGroup**:在早期的Android版本中,ActivityGroup被用来在同一个栈中管理多个子Activity,从而实现类似TabHost的功能,允许用户在不同界面之间平滑切换。不过,从Android 3.0(API级别11)开始,Android...

    android 类似于ios中的tablebar

    3. 在子Activity中替换内容:使用`LocalActivityManager.startActivity()`启动子Activity,并使用`LocalActivityManager.currentActivity()`获取当前活动的窗口对象,然后替换内容。 然而,尽管TabHost和...

    android中的窗口activity高级应用

    **ActivityGroup** 是Android 2.3(API Level 9)及以下版本中提供的一种特殊类型的Activity,允许在一个栈中管理多个子Activity,形成类似TabHost的效果。然而,由于存在一些问题和限制(如生命周期管理复杂、不...

    UI开发第六篇——仿QQ的滑动Tab

    在这个例子中,我们没有看到完整的`onClickListener`实现,但通常情况下,它会更新`current`变量的值,然后根据新的值来调整选中Tab的标识(通常是通过改变选中图标的颜色或形状)。 `replace`方法是实现Tab切换的...

    tabhost_demo

    2. **ActivityGroup**: 在Android 2.x版本中,开发者可以使用ActivityGroup来实现类似嵌套Activity的效果,即在一个Activity中显示多个子Activity。ActivityGroup通过LocalActivityManager管理子Activity,可以实现...

Global site tag (gtag.js) - Google Analytics