Android 4.2 onActivityResult

在Android开发中,onActivityResult是一个非常重要的方法,用于处理Activity之间的数据传递和结果返回。这个方法在Android 4.2及其之后的版本中被广泛使用,因为它为开发人员提供了一种简单而有效的方式来处理不同Activity之间的交互。

什么是 onActivityResult 方法?

onActivityResultActivity 的一个方法,用于接收被调用Activity返回的数据或结果。它在调用其他Activity后被调用,以便处理返回的数据。它通常包含三个参数:requestCoderesultCodedata

  • requestCode:用于标识是哪个Activity返回的数据,可以自定义一个整数常量。
  • resultCode:用于标识返回数据的结果,通常有两个值:RESULT_OKRESULT_CANCELED
  • data:返回的数据,封装在一个Intent对象中。

如何使用 onActivityResult 方法?

使用 onActivityResult 方法需要进行以下几个步骤:

  1. 在调用其他 Activity 之前,使用 startActivityForResult 方法启动目标 Activity,同时传递一个请求码(requestCode)。
  2. 目标 Activity 结束后,它会调用 setResult 方法返回结果,结果包括请求码和结果码。
  3. 调用方 Activity 的 onActivityResult 方法会被回调,可以在此方法中处理返回的数据。

下面是一段示例代码,演示如何使用 onActivityResult 方法:

// 在调用方 Activity 中启动目标 Activity
private static final int REQUEST_CODE = 1;

public void onClick(View view) {
    Intent intent = new Intent(this, TargetActivity.class);
    startActivityForResult(intent, REQUEST_CODE);
}

// 目标 Activity 结束后会调用 setResult 返回结果
@Override
public void onBackPressed() {
    Intent intent = new Intent();
    intent.putExtra("result", "Hello from TargetActivity");
    setResult(RESULT_OK, intent);
    finish();
}

// 调用方 Activity 中的 onActivityResult 方法会被回调
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    
    if (requestCode == REQUEST_CODE) {
        if (resultCode == RESULT_OK) {
            String result = data.getStringExtra("result");
            Toast.makeText(this, result, Toast.LENGTH_SHORT).show();
        } else if (resultCode == RESULT_CANCELED) {
            Toast.makeText(this, "Canceled", Toast.LENGTH_SHORT).show();
        }
    }
}

在上面的示例中,当点击按钮时,调用方 Activity 启动目标 Activity,并传递一个请求码。目标 Activity 在返回结果之前,按下返回键或调用 finish 方法。在目标 Activity 结束后,调用方 Activity 的 onActivityResult 方法会被回调,可以在其中获取返回的数据。

总结

onActivityResult 方法是Android开发中非常有用的一个方法,用于处理Activity之间的数据传递和结果返回。它简化了不同Activity之间的交互,提供了一种简单而有效的方式来传递数据和处理结果。通过使用startActivityForResult方法启动目标Activity,并在目标Activity结束后通过setResult方法返回结果,可以在调用方Activity中的onActivityResult方法中获取返回的数据,并进行相应的处理。

希望本文对你理解Android 4.2的onActivityResult方法有所帮助,能够在你的开发工作中发挥作用。如有任何问题,请随时留言。