2012-03-07 150 views

回答

5

开始活动B与startActivityForResult()
在活动B,当对象被创建创建一个Intent包装在对象:

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

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

data.getSerializableExtra("result"); 
+0

我认为你应该为* object *实现Parcelable。之后,您可以通过Intent将* object *作为基本类型传递。 – anticafe 2012-03-07 15:05:19

+0

@anticafe可序列化的工作也很好:) – Jave 2012-03-07 15:07:23

-1

你为什么这样做?如果您仅将活动B用于创建新对象,则可以使用普通的简单Java类来完成。你想达到什么目的?

+0

可能会发生这样的情况,用户通过设置某些设置或其他内容来创建活动B中的对象? – Jave 2012-03-07 13:50:31

2

使用startActivityForResult方法启动活动B.

当您完成在Activity B中创建对象调用setResult。将数据设置为Intent。你不需要完成这个。

覆盖功能onActivityResult在活动A.当你调用的setResult在活动B.您可以接收意向从活动B.

通过

但大部分时间的数据,这种方式称为,如果只有不同的屏幕具有不同的任务,则需要单独的活动。否则,在同一活动中完成任务。 * (良好和标准实践)。 *

0

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

相关问题