startactivityforresult与数据传递的关系

   2024-09-30 5830
核心提示:startActivityForResult 是 Android 中用于启动一个新的 Activity,并在该 Activity 结束时返回结果的方法。这种机制允许在两个

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

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

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

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

 
举报打赏
 
更多>同类维修大全
推荐图文
推荐维修大全
点击排行

网站首页  |  关于我们  |  联系方式网站留言    |  赣ICP备2021007278号