onActivityResult方法的使用

2022-05-16 12:52:47 字數 1547 閱讀 1185

**自:

在進行介面間的跳轉和傳遞資料的時候,我們有的時候要獲得跳轉之後介面傳遞回來的狀態,資料等資訊。這個時候,我們不一定需要使用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...