Android 在Fragment中執行onActivityResult不被調用的簡單解決方法


在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方法,並且要保證所使用的請求碼或者結果碼一致就行了。

是不是很簡單,有需要的朋友可以參考一下。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM