在Android開發中,我們經常會用到FragmentActivity下嵌套多個Fragment,但是在開發過程中會發現在嵌套的Fragment中使用onActivityResult回調方法沒有被執行。
網上也有很多解決方法,但是說的都比較麻煩,所以今天給大家推薦一種超簡單的用法,
在Fragment和FragmentActivity中都要重寫onActivityResult方法,並且要保證兩者的請求碼或者結果碼一致。代碼如下:
在FragmentActivity中
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { switch(resultCode){ case 1://該結果碼要與Fragment中的一致 //我這里使用的是根據結果碼獲取數據,然后加上下面一句代碼,其 //他的什么都不用做 super.onActivityResult(requestCode,resultCode,data); break; case 2: super.onActivityResult(requestCode,resultCode,data); break; ...... } }
在Fragment中
@Override public void onActivityResult(int requestCode, int resultCode, Intent data) { switch (resultCode){ case 1://該結果碼與FragmentActivity中是保持一致的 //在這里獲取你需要的數據 break; case 2: break; } }
綜上所述要解決在Fragment中使用onActivityResult不被調用的問題,只需要做到在Fragment和FragmentActivity中同時重寫onActivityResult方法,並且要保證所使用的請求碼或者結果碼一致就行了。
是不是很簡單,有需要的朋友可以參考一下。
