Android编程实现两个Activity之间共享数据及互相访问的方法
本文实例讲述了Android编程实现两个Activity之间共享数据及互相访问的方法。分享给大家供大家参考,具体如下:
本人从windows编程转过来学习Android开发,一直在想如果两个Activity之间能够像C#或delphi中的Form一样,可以直接访问其成员(字符、数值、成员对象等),并能调用其公开的方法,那应该比用Intent来传递数据直接方便的多,于是偿试了如下办法,测试基本没有问题,发出来大家讨论一下。本人学习android不久,幼稚的地方希望大家不要见笑
原理:假设有两个Activity:ActivityMain和ActivityNew,在ActivityMain中启动ActivityNew,而在ActivityNew可以访问ActivityMain中的成员对象,调用其公开的方法。那么先在ActivityMain中定义一个静态的成员变量,类型为ActivityMain,然后在OnCreate过程中,将ActivityMain的实例this赋值给该成员:
publicclassActivityMainextendsActivity{
publicstaticActivityMainMainAct;//定义一个本类型的成员变量
StringGetStr(){
return"shaojian";
}
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
MainAct=this;//在这里将本实例赋值给静态成员变量
}
...
}
在ActivityNew中访问ActivityMain中的成员变量和方法:
publicclassActivityNewextendsActivity{
@Override
protectedvoidonCreate(BundlesavedInstanceState){
Stringtitle=bundle.getString("Title");
title=MainActicivity.MainAct.GetStr();//调用成员方法
t.setText(title.trim());
super.onCreate(savedInstanceState);
}
}
希望本文所述对大家Android程序设计有所帮助。
