尝试网上的各种做法,都没有解决问题,但是也给我了一些Tips。
我的程序结构如下:
MainActivity extends FragmentActivity
|
|
---AFragment extends Fragment
|
|
---BFragment extends Fragment
|
|
---CFragment extends Fragment
我现在AFragment
中调用了:
getActivity().startActivityForResult(intent,1002);
Debug发现AFragment
中的onActivityResult
并没有被调用,却发现了MainActivity
中的onActivityResult
被调用了,接下来我们可以这样做,AFragment
中的onActivityResult
原封不动,该做什么做什么,如下
- AFragment
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (data == null)
return;
Bundle bundle = data.getExtras();
if (requestCode == 1002) {
//做自己的操作
}
}
- MainActivity
//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);
}
}
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-10-13 07:47:18