startActivityForResult从片段和整理的子活动(),不以片段叫onActivityResult() [英] startActivityForResult() from a Fragment and finishing child Activity, doesn't call onActivityResult() in Fragment
问题描述
FirstActivity.Java
有一个 FragmentA.Java
这就要求 startActivityForResult()
。
SecondActivity.Java
呼叫完成()
,但 onActivityResult
从来没有所谓这是
写在 FragmentA.Java
。
FirstActivity.Java
has a FragmentA.Java
which calls startActivityForResult()
.
SecondActivity.Java
call finish()
but onActivityResult
never get called which is
written in FragmentA.Java
.
FragmentA.Java
code:
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
// some code
Intent i = new Intent(getActivity(), SecondActivity.class);
i.putExtra("helloString", helloString);
getActivity().startActivityForResult(i, 1);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
getActivity();
if(requestCode == 1 && resultCode == Activity.RESULT_OK) {
//some code
}
}
SecondActivity.Java
code:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//some code
Intent returnIntent = new Intent();
returnIntent.putExtra("result", result);
setResult(Activity.RESULT_OK,returnIntent);
finish();
}
我曾尝试调试code,但 onAcitvityResult()
永远不会被调用。
在此先感谢。
推荐答案
您必须编写 onActivityResult()
在 FirstActivity.Java
如下:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
}
因此,这将调用片段的 onActivityResult()
编辑:的解决方案是更换 getActivity()startActivityForResult(I,1);
与 startActivityForResult(我,1);
the solution is to replace getActivity().startActivityForResult(i, 1);
with startActivityForResult(i, 1);
这篇关于startActivityForResult从片段和整理的子活动(),不以片段叫onActivityResult()的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!