如何将对象从子活动传递到主要活动?

时间:2012-03-07 13:40:57

标签: android

来自ActivityA我正在开始ActivityB 在ActivityB中,我正在创建一个新的Serializable对象 创建对象后,我想关闭 ActivityB并将新对象传递给ActivityA。

我该怎么办?

4 个答案:

答案 0 :(得分:5)

使用startActivityForResult()启动活动B. 在活动B中,创建对象时,创建一个Intent以将对象打包在:

Intent result = new Intent();
result.putExtra("result", object);
setResult(RESULT_OK, result);

然后,您将在活动A的onActivityResult()方法中收到该意图,您可以在其中提取它:

data.getSerializableExtra("result");

答案 1 :(得分:2)

使用 startActivityForResult 方法启动活动B.

在活动B中完成对象调用 setResult 后,在Intent中设置数据。你不需要完成这个。

在活动A中覆盖函数 onActivityResult 。当您在活动B中调用 setResult 时,将调用此函数。您可以从活动B传递的Intent中接收数据。

但是大多数情况下,如果只有不同的屏幕具有不同的任务,则需要单独的活动。否则,在同一个活动中完成任务。 * (良好的标准实践)。 *

答案 2 :(得分:0)

创建对象后,创建一个intent对象,将该对象放入该intent,然后启动活动A.在Activity A的onRestart()中获取该intent并从该intent获取该对象。

答案 3 :(得分:-1)

你为什么这样做?如果您仅将活动B用于创建新对象,则可以在简单的简单java类中执行。你想达到什么目的?