如何在Android上管理startActivityForResult

在我的活动中,我通过startActivityForResult从主活动调用第二个活动。在我的第二个活动中,有一些方法完成了这个活动(可能没有结果),但是,其中只有一个方法返回结果

例如,在主活动中,我调用第二个活动。在本活动中,我将检查手机的一些功能,例如它是否有摄像头。如果没有,我将关闭此活动。另外,在准备MediaRecorderMediaPlayer的过程中,如果出现问题,我将关闭此活动

如果它的设备有摄像头,并且录制完成,那么在录制视频后,如果用户单击“完成”按钮,我会将结果(录制视频的地址)发送回主活动

如何检查主要活动的结果

FirstActivity中,使用startActivityForResult()方法调用SecondActivity

例如:

int-LAUNCH\u SECOND\u活动=1
意向i=新意向(此,SecondActivity.class);
startActivityForResult(i,启动第二次活动);

SecondActivity中,设置要返回到FirstActivity的数据。如果您不想返回,请不要设置任何

例如:在SecondActivity中,如果要发回数据:

Intent returnIntent=newintent();
returnIntent.putExtra(“结果”,结果);
setResult(Activity.RESULT\u OK,returnIntent);
完成();

如果不想返回数据:

Intent returnIntent=newintent();
setResult(Activity.RESULT\u已取消,returnIntent);
完成();

现在,在您的FirstActivity类中,为onActivityResult()方法编写以下代码

@覆盖
受保护的void onActivityResult(int请求代码、int结果代码、意图数据){
super.onActivityResult(请求代码、结果代码、数据);
if(requestCode==启动第二个活动){
if(resultCode==Activity.RESULT\u确定){
字符串结果=data.getStringExtra(“结果”);
}
if(resultCode==Activity.RESULT\u已取消){
//如果没有结果,请编写代码
}
}
}//onActivityResult

要在Kotlin中以更好的方式在两个活动之间传递数据,请通过“在活动之间传递数据的更好方式”

发表评论