在Fragment中怎么调用onActivityResult

前言:

  • 我们都知道在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()来代替

你可能感兴趣的:(Android开发记录)