我正在做的片段:
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上调用而不在片段中调用。有什么线索的原因?
答案 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);
我不知道原因,但它对我有用。希望它有所帮助。