程序结构如下:
MainActivity extends FragmentActivity
|
|
---AFragment extends Fragment
|
|
---BFragment extends Fragment
|
|
---CFragment extends Fragment
- 现在
AFragment
中调用了:
getActivity().startActivityForResult(intent,1000);
Debug发现AFragment
中的onActivityResult
并没有被调用,却发现了MainActivity
中的onActivityResult
被调用了,接下来我们可以这样做,AFragment
中的onActivityResult
原封不动,该做什么做什么,如下
- AFragment
@Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); switch (requestCode) { case 1000: // 做自己的操作 break; default: break; } }
- MainActivity
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == 1000) { aFragment.onActivityResult(requestCode, resultCode, data); } }
//Fragment的集合
List<Fragment> fTabs = new ArrayList<Fragment>();
...
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode== 1002){
//找到AFragment
AFragment fragment= (AFragment) fTabs.get(0);
//调用AFragment的onActivityResult
fragment.onActivityResult(requestCode,resultCode,data);
}
}