如何从Fragment到达onActivityResult()并处理它?

时间:2015-08-05 07:58:20

标签: android android-fragments android-activity

我有一个MainActivity和一个附加滑动菜单。
当用户点击滑动菜单中的按钮时,我会单独调用Fragments 在那之后,在其中一个片段中,我正在调用一个画廊照片选择器,我需要在Fragment中处理它。

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

覆盖片段中的onActivityResult方法,并通过使该片段的对象如下所示,从Activity的 onActivityResult 方法中调用它,

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (fragment != null) {
        fragment.onActivityResult(requestCode, resultCode, data);
    }
}

我希望它会对你有所帮助。

答案 1 :(得分:0)

您可以使用此代码

Intent intent = new Intent();
        intent.setType("image/*");
        intent.setAction(Intent.ACTION_GET_CONTENT);
        intent.addCategory(Intent.CATEGORY_OPENABLE);
        startActivityForResult(intent, SELECT_REQUEST);

并在onActivityResult

    @Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == SELECT_REQUEST && resultCode == Activity.RESULT_OK) {
        try {
            InputStream stream = getActivity().getContentResolver()
                    .openInputStream(data.getData());
            pic = BitmapFactory.decodeStream(stream);
            stream.close();
            imageView.setImageBitmap(pic);

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}