前言:
我们都知道在activity中通过onActivity可以接收另一activty关闭时传回的requestCode、resultCode和data等,但是我们的大多数操作是在fragment中实现的,那么,我们又应该怎么样在fragment中调onActivityResult呢?
第一步:
在使用fragment的activity上这样操作
@Override
protected void onActivityResult(
int requestCode,
int resultCode, Intent intent)
{
super.onActivityResult(requestCode,resultCode,intent);
Fragment fragment = RepairFragment.getInstance();
fragment.onActivityResult(requestCode,resultCode,intent);
}
其中Fragment fragment = RepairFragment.getInstance();这句的意思是找到相对应的fragment,也可以通过fragment管理器 Fragment f = fragmentManager.findFragmentByTag(curFragmentTag);
第二步
在要调用onActivityResult的fragment上执行相对应的操作
@Override
public void onActivityResult(
int requestCode,
int resultCode,Intent intent)
{
super.onActivityResult(requestCode,resultCode,intent);
switch(requestCode){
case REQUEST_CODE_GALLERY:
if(resultCode == RESULT_OK){
imgList.clear();
for(
int i =
0; i<= Album.parseResult(intent).size()-
1; i++){
imgList.add(Album.parseResult(intent).get(i));
}
adapter.notifyDataSetChanged();
}
break;
}
}
提示一点,在acitvity中传递Context时我们可以用this,那如果是在fragment中呢?我们就可以用getActivity()来代替