在活动之间发送对象

时间:2013-02-14 16:04:02

标签: android

我的项目中有两个活动类,第三个类是Thread的子类。

Thread类实现Bluetooth Socket,而不是Parcelable

First Activity使用Second Activity

启动startActivityforResult()

Second Activity创建Thread类的对象并启动线程。

我需要将Thread对象的对象引用从Second Activity传递给First Activity's onActivityResult(),以便我可以从第一个活动访问Thread对象。

我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:2)

您有几个选择。

您可以将对象细分为简单数据类型,并将这些值作为额外内容放在您使用setResult()传回的意图上,这样做就可以使用intent.putExtra(key, value)

或者您可以使您的数据对象实现Parcelable接口,以便您可以将数据对象直接添加到意图中。

执行后者的代码看起来像这样

Intent resultIntent = new Intent();
resultIntent.putExtra("resultObject", mObj);
setResult(ACTION_OK, resultIntent);

然后在你的onActivityResult中你可以像这样把它拉出来:

data.getParcelableExtra("resultObject");

要使后一种方法起作用,您需要正确地对数据对象实现parcelable。然而,前一种方法不需要这样做,因为您只会传回简单值。然后,您必须采用这些简单的值并在另一侧“重新充气”数据对象。

答案 1 :(得分:0)

我认为实现这一目标的最佳方法是使用单身人士。您只能在共享首选项和分发包中存储基元。这是创建单身人士的一个很好的参考。

http://www.javaworld.com/javaworld/jw-04-2003/jw-0425-designpatterns.html