【发布时间】:2014-08-05 05:33:13
【问题描述】:
我有一个 Activity FirstActivity.Java,它有一个调用 startActivityForResult() 的 FragmentA.Java。 SecondActivity.Java 调用了 finish() 但 onActivityResult 被调用一次,因为 FragmentA 调用了用 FragmentA 编写的 startActivityForResult()。 Java 之后再也不像 SecondActivity.Java 调用 finish()。
片段A:
Intent popup = new Intent(getActivity(),
PopupActivity.class);
popup.putExtra(PopupActivity.EXTRA_URL, url + "&_resolve=popupResolve");
startActivityForResult(popup, 222);
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 222){
if (resultCode == Activity.RESULT_OK) {
executeJS((Uri) data.getSerializableExtra(PopupActivity.EXTRA_RESOLVE));
}
}
}
第二个活动:
Intent data = new Intent();
Uri uri = Uri.parse(mUrl);
data.putExtra(EXTRA_RESOLVE, uri);
setResult(Activity.RESULT_OK, data);
finish();
【问题讨论】:
-
首先替换这段代码 data.putExtra(EXTRA_RESOLVE, uri.toString());并执行JS(Uri.parse(data.getStringExtra(PopupActivity.EXTRA_RESOLVE)));.
-
onActivityResult 覆盖在哪里?在 Activity 或 Fragment 中?
-
@pskink 我尝试在两者中都覆盖,但现在只在片段中
标签: android