问题

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

例如,从主活动我调用第二个.在这个活动中,我检查手机的某些功能,如它有一个摄像头.如果没有,我会关闭这个活动.此外,在准备 MediaRecorder MediaPlayer 期间如果出现问题,我将关闭此活动.

如果设备有相机,并且录制完成,则在用户点击完成按钮后录制视频后,我会将结果(录制的视频的地址)发送回主活动.

如何检查主活动的结果?



解决方法

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

例如:

Intent i = new Intent(this, SecondActivity.class);
startActivityForResult(i, 1);

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

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

Intent returnIntent = new Intent();
returnIntent.putExtra("result",result);
setResult(Activity.RESULT_OK,returnIntent);
finish();

如果您不想返回数据:

Intent returnIntent = new Intent();
setResult(Activity.RESULT_CANCELED, returnIntent);
finish();

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

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {

    if (requestCode == 1) {
        if(resultCode == Activity.RESULT_OK){
            String result=data.getStringExtra("result");
        }
        if (resultCode == Activity.RESULT_CANCELED) {
            //Write your code if there's no result
        }
    }
}//onActivityResult

从活动中返回结果的文档




相关问题推荐