從ActivityA開始ActivityB。
在ActivityB中,我創建了一個新的Serializable對象。
對象創建後,我想關閉 ActivityB並將新對象傳遞給ActivityA。如何將對象從子活動傳遞給主活動?
我該怎麼辦?
從ActivityA開始ActivityB。
在ActivityB中,我創建了一個新的Serializable對象。
對象創建後,我想關閉 ActivityB並將新對象傳遞給ActivityA。如何將對象從子活動傳遞給主活動?
我該怎麼辦?
開始活動B與startActivityForResult()
。
在活動B,當對象被創建創建一個Intent包裝在對象:
Intent result = new Intent();
result.putExtra("result", object);
setResult(RESULT_OK, result);
然後將收到意圖在活動A,的onActivityResult()
方法,其中可以提取它像這樣:
data.getSerializableExtra("result");
你爲什麼這樣做?如果您僅將活動B用於創建新對象,則可以使用普通的簡單Java類來完成。你想達到什麼目的?
可能會發生這樣的情況,用戶通過設置某些設置或其他內容來創建活動B中的對象? – Jave 2012-03-07 13:50:31
使用startActivityForResult方法啓動活動B.
當您完成在Activity B中創建對象調用setResult。將數據設置爲Intent。你不需要完成這個。
覆蓋功能onActivityResult在活動A.當你調用的setResult在活動B.您可以接收意向從活動B.
通過但大部分時間的數據,這種方式稱爲,如果只有不同的屏幕具有不同的任務,則需要單獨的活動。否則,在同一活動中完成任務。 * (良好和標準實踐)。 *
創建對象後,創建一個intent對象,將該對象放到該intent中,然後啓動activity A.在Activity A的onRestart()中獲取該intent並從該intent獲取該對象。
我認爲你應該爲* object *實現Parcelable。之後,您可以通過Intent將* object *作爲基本類型傳遞。 – anticafe 2012-03-07 15:05:19
@anticafe可序列化的工作也很好:) – Jave 2012-03-07 15:07:23