Android 4.2 onActivityResult
在Android开发中,onActivityResult
是一个非常重要的方法,用于处理Activity之间的数据传递和结果返回。这个方法在Android 4.2及其之后的版本中被广泛使用,因为它为开发人员提供了一种简单而有效的方式来处理不同Activity之间的交互。
什么是 onActivityResult 方法?
onActivityResult
是 Activity
的一个方法,用于接收被调用Activity
返回的数据或结果。它在调用其他Activity
后被调用,以便处理返回的数据。它通常包含三个参数:requestCode
、resultCode
和data
。
requestCode
:用于标识是哪个Activity
返回的数据,可以自定义一个整数常量。resultCode
:用于标识返回数据的结果,通常有两个值:RESULT_OK
和RESULT_CANCELED
。data
:返回的数据,封装在一个Intent
对象中。
如何使用 onActivityResult 方法?
使用 onActivityResult
方法需要进行以下几个步骤:
- 在调用其他 Activity 之前,使用
startActivityForResult
方法启动目标 Activity,同时传递一个请求码(requestCode)。 - 目标 Activity 结束后,它会调用
setResult
方法返回结果,结果包括请求码和结果码。 - 调用方 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
方法有所帮助,能够在你的开发工作中发挥作用。如有任何问题,请随时留言。