在我的应用程序中,Activity A将启动TabActivity,TabActivity的内容中包含一些Activity。
tabHost.newTabSpec("tab1").setContent( new Intent(this, ActivityB.class ) ) ...
ActivityB将从用户那里获取一些数据(即选择一个联系人),我希望ActivityA将获得这些数据。但正如你所看到的,似乎我无法startyActivityForResult和onActivityResult来获得结果。
那么,我如何从ActivityB获取ActivityA中的数据?谢谢。
答案 0 :(得分:1)
我的问题再也没有答案。所以我必须自己解决。我的解决方案很难看但很有效。正如有人猜测的那样,我们可以编写一个单例类来存储这些数据。 ActivityB将写入数据,ActivityA将读取它。很容易。
相比之下,我搜索了这个网站,并找到了一些简单的解决方案。像here
一样答案 1 :(得分:0)
为要存储的对象创建一个类(即:ObjectYouWantToStore)。
扩展android.app.Application。
public class MyApp extends android.app.Application {
private ObjectYouWantToStore mObject;
public ObjectYouWantToStore getObject() {;
return mObject;
}
public void setObject(ObjectYouWantToStore obj) {
mObject = obj;
}
}
在清单文件中写入Application的路径。
<application android:icon="@drawable/icon" android:label="@string/app_name" android:name=".MyApp">
将数据存储在您的活动B
中MyApp app = (MyApp)getApplicationContext();
app.setObject(ObjectYouWantToStore);
访问活动A中的相同数据
MyApp app = (MyApp)getApplicationContext();
ObjectYouWantToStore obj = app.getObject();