Android 从活动返回后未调用onActivityResult
我将从activity MainActivity中的片段转到activity SetExperimentActivity,如下所示:Android 从活动返回后未调用onActivityResult,android,android-intent,android-activity,Android,Android Intent,Android Activity,我将从activity MainActivity中的片段转到activity SetExperimentActivity,如下所示: Intent myIntent = new Intent(getActivity(), SetExperimentActivity.class); myIntent.putExtra(SetExperimentActivity.KEY_RESERVATION_END, reservation.getEndAsDate()); getActivity().start
Intent myIntent = new Intent(getActivity(), SetExperimentActivity.class);
myIntent.putExtra(SetExperimentActivity.KEY_RESERVATION_END, reservation.getEndAsDate());
getActivity().startActivityForResult(myIntent, 0);
getActivity().overridePendingTransition(android.R.anim.slide_in_left, android.R.anim.slide_out_right);
Intent myIntent = new Intent();
myIntent.putExtra(Constants.EXTRA_EQUIPMENT, equipment);
setResult(0, myIntent);
finish();
在MainActivity中,我有onActivityResult方法
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
this.intent = data;
}
在SetExperimentActivity中,我进行了一些操作,并重定向回MainActivity,使用额外的包裹,如下所示:
Intent myIntent = new Intent(getActivity(), SetExperimentActivity.class);
myIntent.putExtra(SetExperimentActivity.KEY_RESERVATION_END, reservation.getEndAsDate());
getActivity().startActivityForResult(myIntent, 0);
getActivity().overridePendingTransition(android.R.anim.slide_in_left, android.R.anim.slide_out_right);
Intent myIntent = new Intent();
myIntent.putExtra(Constants.EXTRA_EQUIPMENT, equipment);
setResult(0, myIntent);
finish();
onActivityResult没有被调用在这种情况下,您应该使用
startActivityForResult
,而不是startActivity
!请参阅上提供的官方文档。startactivityforresult
方法在第一个活动中调用,然后在第二个活动中填充数据后,我们可以使用设置结果(结果\u OK,数据)代码>然后在调用onactivityresult
后,在您的第一个活动中输入代码:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// Check which request we're responding to
if (requestCode == PICK_CONTACT_REQUEST) {
// Make sure the request was successful
if (resultCode == RESULT_OK) {
// The user picked a contact.
// The Intent's data Uri identifies which contact was selected.
// Do something with the contact here (bigger example below)
}
}
}
getIntent从不返回null,因此我设置-myIntent.putExtra(Constants.EXTRA_设备,设备)。。。。setResult(0,myIntent)。。。。完成();它返回到MainActivity,但未调用my onActivityResult在MainActivity类中调用onActivityResult?在MainActivity类中调用startActivityForResult调用其他活动