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