gpt4 book ai didi

Android:如何使 Activity 返回结果给调用它的 Activity ?

转载 作者:IT老高 更新时间:2023-10-28 13:04:32 28 4
gpt4 key购买 nike

我有一个 Location Activity ,可以从许多 Activity 中调用,例如 Sign upOrder。在 Location Activity 中,用户输入了他的位置,因此 Location Activity 会将这个新位置返回给调用它的那个 Activity 。

所以当 Sign up Activity 调用 Location Activity 时,它必须将数据返回给 Sign up Activity 。另一次 Order Activity 将做同样的事情。

注意

我知道你会告诉我应该发布代码,但我并不是要你给我代码;我只是想要一些提示、链接或好话题。

最佳答案

为了启动应该将结果返回给调用 Activity 的 Activity ,您应该执行以下操作。您应该传递如下所示的请求代码,以识别您从开始的 Activity 中获得了结果。

startActivityForResult(new Intent(“YourFullyQualifiedClassName”),requestCode);

在activity中你可以使用setData()来返回结果。

Intent data = new Intent();
String text = "Result to be returned...."
//---set the data to pass back---
data.setData(Uri.parse(text));
setResult(RESULT_OK, data);
//---close the activity---
finish();

那么再次在第一个 Activity 中,您在 onActivityResult() 中编写以下代码

public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == request_Code) {
if (resultCode == RESULT_OK) {
String returnedResult = data.getData().toString();
// OR
// String returnedResult = data.getDataString();
}
}
}

根据您的评论进行编辑:如果您想返回三个字符串,请按照 Intent 使用键/值对而不是使用 Uri。

Intent data = new Intent();
data.putExtra("streetkey","streetname");
data.putExtra("citykey","cityname");
data.putExtra("homekey","homename");
setResult(RESULT_OK,data);
finish();

onActivityResult 中获取它们,如下所示:

public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == request_Code) {
if (resultCode == RESULT_OK) {
String street = data.getStringExtra("streetkey");
String city = data.getStringExtra("citykey");
String home = data.getStringExtra("homekey");
}
}
}

关于Android:如何使 Activity 返回结果给调用它的 Activity ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14785806/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com