
掃碼后外層的fragment會走onActivityResult回調(diào),在回調(diào)里面在調(diào)用dialog的onActivityResult。


下面是轉載的
原文鏈接:https://blog.csdn.net/csxwc/java/article/details/31350881
開發(fā)中遇到Fragment中onActivityResult不響應的問題,曾經(jīng)見過。 不少同學說處理方法是在與Fragment綁定的FragmentActivity中重寫onActivityResult方法。返回的result先傳至Fragment的FragmentActiivity。這個FragementActivity的onActivityResult函數(shù)必須調(diào)用 super.onActiivtyResult()。super.onActiivtyResult會將未被處理的result消息繼續(xù)傳給其host的 fragement的onActiivtyResult。
但是都不管用,解決方法就是在Fragment中直接調(diào)用startActivityForResult()方法,而不是調(diào)用 getActivity().startActivityForResult()。
這樣問題就解決了!
另一種情況:Fragment嵌套Fragment,然后在子Fragment中startActivityForResult(),子Fragment中onActivityResult()無響應:
解決方法:在子Fragment中使用getParentFragment().startActivityForResult(),然后在父Fragment的onActivityResult()中獲取返回值,然后在子Fragment中用父Fragment的實例去獲取父onActivityResult()中的返回值,然后去進行你想要進行的操作。