2012-03-07 168 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獲取該對象。

相關問題