2017-08-24 58 views
0

獲得一個結果要描述的情況,說我有3個活動:A,B,和C 並且在活性的一個按鈕,用於啓動活動B,並且在活性C使用時的按鈕它被點擊,就應該從活動c。發送到活動的結果的從一個活動

我的問題是...有沒有辦法從C結果傳遞至A?如果有辦法,它是什麼?

注意:如果你給的方式使用startActivityForResult(...)和onActivityResult(...)

預先感謝您的方法,這將是很好

+0

爲什麼不使用數據庫(例如Firebase)來存儲結果?並從活動C檢索它? –

+0

@CatalinGhita我能做到這一點,但我想馬上得到結果時,結果被傳遞,通過使用代碼或類似onActivityResult()的方法 – user8447949

回答

0

有一個稱爲FLAG_ACTIVITY_FORWARD_RESULTIntent標誌。呼叫:

Intent intent = new Intent(this, ActivityB.class); 
startActiivtyForResult(intent); 

開始Activity B時的(通過調用startActivityForResult(intent))。 當打開C,致電:

Intent intent = new Intent(this, ActivityB.class); 
intent.setFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT); 
startActiivtyForResult(intent); 
finish(); 

這意味着:打開C,接近B.然後,關閉胡亞蓉C使用時,請致電:

setResult(123); 
finish(); 

從C結果將回到A.

+0

你的意思,我應該在的onClick添加此行代碼在活動B( ) 方法? – user8447949

+0

對不起,我不明白,你能詳細解釋一下嗎? – user8447949

+0

編輯,這個問題,現在希望這個更清楚。 –

1

如果你只是使用像String對象這樣簡單的類型,你可以在B,C活動中使用Bundle和補充變量。並使用onActivity結果將其從C-> B-> A轉移。或者你可以使用共享首選項。

+0

這是個好主意。不過,我想從C傳遞到一個立即 – user8447949

+0

讓您導致活性C,然後將結果發送到共享偏好和共享偏好 –

+0

呼叫活動A和蒙古包結果,我想執行代碼時的結果獲得通過,通過使用一個代碼或像onActivityResult()方法。 – user8447949

0

如果您正在從Activity C導航到Activity A,則可以使用Intent傳輸數據。否則,我建議使用Interface,然後在Activity A中的callback方法中傳遞數據作爲參數。你說你想得到如onActivityResult這樣的答案,爲此,我猜Activity C應該退出或調用onActivityResultActivity A