在整理需求的時(shí)候,發(fā)現(xiàn)頁面之間的數(shù)據(jù)傳輸這塊是個(gè)可以總結(jié)的知識(shí)點(diǎn)。一般情況下頁面之間的數(shù)據(jù)傳輸可以有以下幾種思路:1、通過startActivityForResult方法進(jìn)行數(shù)據(jù)傳輸;2、通過廣播的形式傳輸;3、可以通過接口的調(diào)用來傳輸數(shù)據(jù);4、通過存儲(chǔ)介質(zhì)來分享數(shù)據(jù);5、通過EventBus進(jìn)行頁面之間的傳輸;這邊總結(jié)一下第一種的簡(jiǎn)單使用。
一個(gè)主界面(主Activity)通過意圖跳轉(zhuǎn)至多個(gè)不同子Activity上去,當(dāng)子模塊的代碼執(zhí)行完畢后再次返回主頁面,將子activity中得到的數(shù)據(jù)顯示在主界面/完成的數(shù)據(jù)交給主Activity處理。這種帶數(shù)據(jù)的意圖跳轉(zhuǎn)需要使用activity的onActivityResult()方法。
關(guān)于startActivityForResult startActivityForResult(Intent intent, int requestCode)老是遺忘,尤其其中的幾個(gè)參數(shù)。老是傻傻分不清。所以今天就簡(jiǎn)單的記錄下來。
startActivityForResult startActivityForResult(Intent intent, int requestCode)。這個(gè)方法我一般用來在ActivityA中啟動(dòng)另一個(gè)activityB,當(dāng)返回的時(shí)候需要攜帶來自B的數(shù)據(jù)。
一、首先在ActivityA中啟動(dòng)startActivityForResult startActivityForResult(Intent intent, int requestCode)參數(shù)2.requescode,你自定義的一個(gè)int類型的數(shù)值(一般>0),當(dāng)從activityB中返回來的時(shí)候。會(huì)攜帶回來。所以你可以用這個(gè)參數(shù)來判斷是從哪個(gè)activity中返回的。(前提是你在開啟新的activity的時(shí)候 要傳的requestcode不一樣)。
二。其次還有一個(gè)方法。這個(gè)方法是在ActivityB中使用的,主要一定要在finish()之前調(diào)用該方法 不然不起作用。
三。最后在ActivityA中onActivityResult()中接收數(shù)據(jù),然后拿到數(shù)據(jù)你想干嘛就干嘛了。