如何从TabHost中的Activity获取活动结果?

时间:2010-12-26 14:30:57

标签: android

在我的应用程序中,Activity A将启动TabActivity,TabActivity的内容中包含一些Activity。

tabHost.newTabSpec("tab1").setContent( new Intent(this, ActivityB.class ) ) ...

ActivityB将从用户那里获取一些数据(即选择一个联系人),我希望ActivityA将获得这些数据。但正如你所看到的,似乎我无法startyActivityForResult和onActivityResult来获得结果。

那么,我如何从ActivityB获取ActivityA中的数据?谢谢。

2 个答案:

答案 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();