在進行介面間的跳轉和傳遞資料的時候,我們有的時候要獲得跳轉之後介面傳遞回來的狀態,資料等資訊。這個時候,我們不一定需要使用intent進行跳轉回原先設定的介面,而是使用onactivityresult方法就可以解決這個問題。
原理如圖:
我們這裡假設有a、b兩個activity,由a跳轉到b,然後b返回到a。
在這一過程中,我們在a啟動b的過程中呼叫startactivityforresult()方法來啟動b,
然後在b中呼叫context.setresult()方法來傳遞返回的code,
並在a中的onactivityresult()方法中解析返回的結果,並做相應的邏輯操作。
對幾個方法的解釋:
1.startactivityforresult(intent intent, int requestcode):
該方法要在oncreate中呼叫,傳遞的引數有兩個,乙個是intent,intent中可以攜帶傳遞的資料;另乙個是int型的請求碼code,請求碼可以自己定義。
請求碼的作用:為了區分啟動不同的intent,或者傳遞不同的資料使用,作為一種不同啟動的標識。比如a有兩個button都要啟動b,為了區分是哪個button啟動的b,我們就要設定兩個不同的請求碼來區分。
這個方法是啟動b的啟動方法,呼叫之後會跳轉到介面b,並傳遞相應的數值。同時,對於具體intent傳遞的數值,可以使用接下來講解的onactivityresult()方法來傳遞,這樣啟動方法和資料操作方法分開寫,會更好。
2.b中的setresult方法。
setresult()方法有兩個,乙個是只含有int型引數resultcode,另乙個是可以傳遞intent的,分別為,如圖:
使用方法就是獲取當前activity作為物件,並呼叫該方法,然後再執行finish()方法,結束當前介面就可以。
當呼叫setresult方法之後,a介面就已經收到了傳送的資料。
3.onactivityresult()方法的使用:
引數型別如圖:
三個引數分別為int型 requestcode, int型 resultcode, intent型 data。
第乙個是請求碼,可以進行傳遞資料前的一些操作,比如根據不同的請求碼,設定不同的傳遞內容。
第二個是返回碼,也就是在b中設定的int的數值,這個是得到返回的內容的標識。
第三個是intent的資料,比如在b中的setresult方法中傳遞了一些資料,在a中就可以通過解析intent的內容來獲得傳遞過來的資料。
對於具體的寫法,可以按照下圖的方式構造:
onActivityResult方法的使用
自 在進行介面間的跳轉和傳遞資料的時候,我們有的時候要獲得跳轉之後介面傳遞回來的狀態,資料等資訊。這個時候,我們不一定需要使用intent進行跳轉回原先設定的介面,而是使用onactivityresult方法就可以解決這個問題。原理如圖 我們這裡假設有a b兩個activity,由a跳轉到b,然後b...
jqgrid addJSONData方法使用
寫這篇文章的目的是記錄一下jqgrid.addjsondata的使用方法 因為使用addrowdata要迴圈寫入效率太低,沒搜到相關的示例,so.最近工作中接到乙個功能,要做地圖和 對於用慣了bootstrap antd 的我來說,jqgrid是什麼鬼,看了看官網,jqgrid提供的屬性和方法太多了...
Spark的ReduceByKey方法使用問題
spark的reducebykey使用時注意 如果key值是唯一的,那麼value值就會原樣輸出。reducebykey是基於combinebykey,如果key值唯一,就不會執行merge步驟,也就不會執行reducebykey方法體。例項 object test for i2 y println...