其他分享
首页 > 其他分享> > Android:如何让活动将结果返回给调用它的活动?

Android:如何让活动将结果返回给调用它的活动?

作者:互联网

我有一个可以从许多活动中调用的位置活动,例如注册和订单.在位置活动中,用户输入其位置,因此活动位置将此新位置返回到调用它的活动.

因此,当注册活动调用位置活动时,它必须将数据返回到注册活动. Order活动的另一次将做同样的事情.

 注意

我知道你会告诉我我应该发布代码,但我不是要你给我代码;我只想要一些提示,链接或好线程.

解决方法:

为了启动一个应该将结果返回给调用活动的活动,您应该执行以下操作.您应该传递如下所示的请求代码,以便确定您从您开始的活动中获得了结果.

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

在活动中,您可以使用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();

那么在第一个活动中再次在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();
        }
    }
}

根据您的评论编辑:
如果要返回三个字符串,请使用意图而不是使用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");
        }
    }
}

标签:onactivityresult,android,android-activity
来源: https://codeday.me/bug/20190918/1810891.html