在我的 Activity 中,我通过 startActivityForResult
从主 Activity 调用第二个 Activity 。在我的第二个 Activity 中,有一些方法可以完成此 Activity (可能没有结果),但是,只有其中一个返回结果。
例如,我从主要 Activity 中调用第二个 Activity 。在此 Activity 中,我将检查手机的某些功能,例如它是否具有摄像头。如果没有,那么我将关闭此 Activity 。此外,在 MediaRecorder
或 MediaPlayer
的准备过程中,如果出现问题,我将关闭此 Activity 。
如果它的设备有摄像头并且录制完全完成,那么在录制视频后,如果用户点击完成按钮,我会将结果(录制视频的地址)发送回主 Activity 。
如何查看主要 Activity 的结果?
最佳答案
在您的 FirstActivity
中,使用 startActivityForResult()
方法调用 SecondActivity
。
例如:
int LAUNCH_SECOND_ACTIVITY = 1
Intent i = new Intent(this, SecondActivity.class);
startActivityForResult(i, LAUNCH_SECOND_ACTIVITY);
在您的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) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == LAUNCH_SECOND_ACTIVITY) {
if(resultCode == Activity.RESULT_OK){
String result=data.getStringExtra("result");
}
if (resultCode == Activity.RESULT_CANCELED) {
// Write your code if there's no result
}
}
} //onActivityResult
要在 Kotlin 中以更好的方式在两个 Activity 之间传递数据,请通过 ' A better way to pass data between Activities '。
关于android - 如何在 Android 上管理 startActivityForResult,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32277024/