onActivityResult未在片段中调用

时间:2013-10-16 09:07:47

标签: android android-intent fragment

我正在做的片段:

    Intent intent = new Intent(getActivity(), OtherActivity.class);

    startActivityForResult(intent, RETURN_CODE);

我已在我的活动

上覆盖了onActivityResult
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {

    logger.debug("!!ACTIVITY!!!Returned from the activity!!!!");

    super.onActivityResult(requestCode, resultCode, data);
}

片段也一样!问题是这个方法只在Activity上调用而不在片段中调用。有什么线索的原因?

1 个答案:

答案 0 :(得分:0)

支持v4存在问题,请尝试使用onPostResume 在Activity中的onActivityResult中使用代码

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    returningWithResult = true;
    this.mData = data;
    mRequestCode = requestCode;
    mResultCode = resultCode;
}

和onPostResume

@Override
protected void onPostResume() {
    // TODO Auto-generated method stub
    super.onPostResume();
    if (returningWithResult)
        <your fragment>.actionOnActivityResult(mRequestCode, mResultCode, mData);

    returningWithResult = false;
}

还尝试仅从活动中启动结果意图

public void launchIntent(Intent intent, int code) {
    startActivityForResult(intent, code);
}

在Fragment中使用

getActivity().launchIntent(intent, PICK_FROM_CAMERA);

我不知道原因,但它对我有用。希望它有所帮助。