有时我们需要将数据或参数传递给 Android 上的另一个 Activity。一次只有一项活动处于活动状态。一个活动为结果打开新活动,打开的活动需要参数来设置它们的接口或基于请求的其他选项。因此,系统能够处理两个 Activity 之间的发送和检索参数非常重要。
注意: startActivity(Intent) 方法用于启动一个新的活动,该活动将被放置在活动堆栈的顶部。它需要一个参数,一个 Intent,它描述了要执行的活动。
它真的很容易使用。您以请求代码开始和活动,并以结果代码结束它。然后活动调用者可以利用请求代码和结果代码来实现切换器并实现一些逻辑。如果您查看以下示例,则很清楚:
startActivityForResult(intent, CREATE_REQUEST_CODE);
在同一个活动中,您需要实现接收方法。它看起来像这样:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == CREATE_REQUEST_CODE) {
if (resultCode == RESULT_OK) {
//ACT
}
}
}
最后一部分是在被调用的活动中。最后,您必须指定结果代码:
setResult(RESULT_CANCELED, null);
finish();
//或者
setResult(RESULT_OK, null);
finish();
最后,我建议您重用已经在 android sdk 中实现的结果代码。特别是您至少可以重复使用
RESULT_CANCELED : Standard activity result : operation canceled.
RESULT_FIRST_USER : Start of user-defined activity results.
RESULT_OK : Standard activity result : operation succeeded.
来自developer.android.com的文档
观看有关此问题和示例的更多信息:
链接 1,链接 2可能是最好的例子(更多)。