android - 如何在 Android 上管理 startActivityForResult

标签 android android-intent android-activity startactivityforresult

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

例如,我从主要 Activity 中调用第二个 Activity 。在此 Activity 中,我将检查手机的某些功能,例如它是否具有摄像头。如果没有,那么我将关闭此 Activity 。此外,在 MediaRecorderMediaPlayer 的准备过程中,如果出现问题,我将关闭此 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/

相关文章:

java - 声明中的Android AsyncTask错误

android - 如何使用默认的 Android 电子邮件应用程序发送带附件的电子邮件 - Delphi XE7

java - 将底部导航 Activity 转换为 Fragment

android - 从标题 TextView 小部件设置文本

Android - 从方形位图中切出一个圆圈

java.lang.NoClassDefFoundError : com. amazonaws.services.s3.AmazonS3Client

android - 在 Debug模式下连接 USB 时,Nexus 4 不显示 RSA 对话框

javascript - 链接或 Javascript fragment 从 android 强制门户浏览器上的链接打开外部应用程序

android - 共享 Intent 过滤器

java - android Activity 切换不起作用