zoukankan      html  css  js  c++  java
  • 两个Activity之间共享数据、互相访问的另一种方式的实现

    本帖最后由 勇敢的心_ 于 2010-9-29 11:51 编辑

    本人从windows编程转过来学习Android开发,一直在想如果两个Activity之间能够像C#或delphi中的Form一样,可以直接访问其成员(字符、数值、成员对象等),并能调用其公开的方法,那应该比用Intent来传递数据直接方便的多,于是偿试了如下办法,测试基本没有问题,发出来大家讨论一下。本人学习android不久,幼稚的地方希望大家不要见笑

    原理:假设有两个Activity:ActivityMain 和 ActivityNew,在 ActivityMain 中启动 ActivityNew,而在 ActivityNew 可以访问 ActivityMain 中的成员对象,调用其公开的方法。那么先在 ActivityMain 中定义一个静态的成员变量,类型为 ActivityMain ,然后在 OnCreate过程中,将ActivityMain 的实例this赋值给该成员:

    public class ActivityMain extends Activity {

            public static ActivityMain MainAct; //定义一个本类型的成员变量
            
            
            String GetStr(){
                    return "shao jian";
            }
            @Override
            public void onCreate(Bundle savedInstanceState) {
                    super.onCreate(savedInstanceState);
                    setContentView(R.layout.main); 

                    MainAct = this; //在这里将本实例赋值给静态成员变量
            }
    ...
    }


    在ActivityNew中访问ActivityMain中的成员变量和方法:

    public class ActivityNew extends Activity {
            
            @Override
            protected void onCreate(Bundle savedInstanceState) {
                    
                    String title = bundle.getString("Title");

                    title = MainActicivity.MainAct.GetStr(); //调用成员方法
                    t.setText(title.trim());

                    super.onCreate(savedInstanceState);
            }
    }
  • 相关阅读:
    郁闷,母版页为什么会这样?怎么在使用了母版页的情况下使用js?大家帮忙
    .NET中实现无刷新客户端联动下拉菜单 (无刷新)(一)
    ADO.NET(二)
    HasRows的返回值问题
    动态生成DataTable绑定至DataList一例
    关于FastReport4.3的使用心得1
    资源文件的编译
    加密当前数据库的所有存储过程。
    使用拼音首字母序列实现检索功能
    关于错误Access Violation和too many consecutive exceptions,解决方法
  • 原文地址:https://www.cnblogs.com/wanqieddy/p/3782321.html
Copyright © 2011-2022 走看看