legongju.com
我们一直在努力
2025-01-12 21:08 | 星期天

startactivityforresult与数据传递的关系

startActivityForResult 是 Android 中用于启动一个新的 Activity,并在该 Activity 结束时返回结果的方法。这种机制允许在两个 Activity 之间进行数据传递。以下是 startActivityForResult 与数据传递的关系:

  1. 启动新 Activity:在当前 Activity 中,使用 startActivityForResult 方法启动一个新的 Activity。你需要传递一个 Intent 对象,该对象包含了要启动的 Activity 的类名和要传递给新 Activity 的数据。同时,你还需要提供一个请求码(requestCode),用于标识这次请求。
Intent intent = new Intent(this, SecondActivity.class);
intent.putExtra("key", "value"); // 将数据添加到 Intent 中
startActivityForResult(intent, REQUEST_CODE);
  1. 处理新 Activity:在新 Activity 中,你可以通过 getIntent() 方法获取传递过来的 Intent 对象,并从中提取数据。然后,根据需要处理这些数据。
Intent intent = getIntent();
String value = https://www.yisu.com/ask/intent.getStringExtra("key");
// 处理数据
  1. 返回结果:在新 Activity 中,当你完成操作并需要返回结果时,可以使用 setResult 方法设置结果码(resultCode)和一个包含返回数据的 Intent 对象。然后,调用 finish() 方法结束新 Activity。
Intent resultIntent = new Intent();
resultIntent.putExtra("result_key", "result_value");
setResult(RESULT_OK, resultIntent);
finish();
  1. 接收结果:在当前 Activity 中,重写 onActivityResult 方法以接收新 Activity 返回的结果。这个方法会在新 Activity 结束时被调用。你可以通过检查请求码(requestCode)和结果码(resultCode)来确定是否接收到了正确的结果。
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) {
        String resultValue = https://www.yisu.com/ask/data.getStringExtra("result_key");
        // 处理返回的数据
    }
}

总之,startActivityForResult 与数据传递的关系主要体现在以下几点:

  • 使用 startActivityForResult 方法启动新 Activity,并将数据添加到 Intent 中。
  • 在新 Activity 中,通过 getIntent() 方法获取传递过来的数据。
  • 在新 Activity 中,使用 setResult 方法设置返回结果,并通过 finish() 方法结束新 Activity。
  • 在当前 Activity 中,重写 onActivityResult 方法以接收新 Activity 返回的结果。

未经允许不得转载 » 本文链接:https://www.legongju.com/article/103848.html

相关推荐

  • startactivityforresult的回调机制解析

    startactivityforresult的回调机制解析

    startActivityForResult 是 Android 中用于从一个 Activity 启动另一个 Activity,并在结果返回时获取结果数据的方法。这种回调机制基于 Android 的 Activity 生...

  • 如何在Android中使用startactivityforresult

    如何在Android中使用startactivityforresult

    在Android中,startActivityForResult()方法用于从一个活动(Activity)启动另一个活动并期望返回结果 创建第二个活动(我们将其称为SecondActivity)并添加所需...

  • startactivityforresult的用途是什么

    startactivityforresult的用途是什么

    startActivityForResult是Android开发中用于启动另一个Activity并期望从该Activity获取返回结果的方法。其主要用途和用法如下:
    主要用途 启动Activity并等...

  • startactivityforresult在后台服务中的调用

    startactivityforresult在后台服务中的调用

    startActivityForResult 是一个用于从一个 Activity 启动另一个 Activity 并等待结果的方法。通常,这个方法在 Activity 之间进行页面跳转时使用,以便在返回时获...

  • 如何在Android中使用startactivityforresult

    如何在Android中使用startactivityforresult

    在Android中,startActivityForResult()方法用于从一个活动(Activity)启动另一个活动并期望返回结果 创建第二个活动(我们将其称为SecondActivity)并添加所需...

  • startactivityforresult的用途是什么

    startactivityforresult的用途是什么

    startActivityForResult是Android开发中用于启动另一个Activity并期望从该Activity获取返回结果的方法。其主要用途和用法如下:
    主要用途 启动Activity并等...

  • container_of宏在性能优化中的作用

    container_of宏在性能优化中的作用

    container_of 宏在性能优化中的作用主要体现在内存管理和数据结构设计方面 内存管理:container_of 宏可以帮助程序员更高效地管理内存。通过使用 container_of,...

  • 如何测试container_of宏的正确性

    如何测试container_of宏的正确性

    container_of 是一个 C 语言宏,用于在已知成员变量的情况下获取其所属结构体的指针 首先,创建一个简单的结构体类型和成员变量类型。例如: #include
    #inc...