如何将结果发送回android中的上一个活动?

时间:2013-01-25 17:05:14

标签: android android-intent

我使用三个活动ActivitY,Activity和ActivityC.from ActivityA有onActivityResult函数我需要来自Activityc的结果我在b / w中穿越activityB

2 个答案:

答案 0 :(得分:2)

这很容易。您还可以在ActivityB中实现onActivityResult,然后将其传递回活动A:

if(RESULT_OK)
{
//GET data passedback
Intent returnIntent = new Intent();
returnIntent.putExtra(your extra data);
setResult(RESULT_OK, returnIntent);
finish()
}

这是我总是使用我的主页按钮实现的方式。

答案 1 :(得分:0)

如果我理解得很好,你可以从ActivityA打开ActivityB,然后从ActivityB打开ActivityC。您希望ActivityA从ActivityC获取值。

可能最简单的方法是将值存储为静态,并直接从类中读取它们。

如果你想使用StartActivityForResult(所以你可以从onActivityResult获得结果),你应该让ActivityB从C接收结果,然后让ActivityB将结果传递给ActivityA:

ActivityA实现ResultsReciever。然后启动Activity B,并使用

检索调用活动(ActivityA)
interface ResultsReciever{
    executeSomething(ArrayList values);
}

声明ActivityA实现接口:

public class ActivityA extends Activity implements ResultsReciever

在活动B上,在onStart方法中:

ResultsReciever caller = (ResultsReciever)getCallingActivity();

然后ActivityB使用StartActivityForResult()启动ActivityC。在ActivityB中的onActivityResult中,您可以调用:

caller.executeSomething(whatever);