来自ActivityA我正在开始ActivityB 在ActivityB中,我正在创建一个新的Serializable对象 创建对象后,我想关闭 ActivityB并将新对象传递给ActivityA。
我该怎么办?
答案 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类中执行。你想达到什么目的?