-2

我使用三个活动 ActiviytA、ActivityB 和 ActivityC。来自 ActivityA 具有 onActivtResult 功能我需要来自 Activityc 的结果在 b/wi 中通过 activityB

4

2 回答 2

2

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

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

这就是我一直使用我的主页按钮实现的方式。

于 2013-01-25T17:09:10.690 回答
0

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

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

如果你想使用 StartActivityForResult(这样你可以从 onActivityResult 中获取结果),你应该让 ActivityB 接收来自 C 的结果,然后让 ActivityB 将结果传递给 ActivityA:

ActivityA 实现 ResultsReciever。然后启动活动 B,并检索调用活动 (ActivityA)

interface ResultsReciever{
    executeSomething(ArrayList values);
}

声明实现接口的ActivityA:

public class ActivityA extends Activity implements ResultsReciever

在 Activity B 上,在 onStart 方法中:

ResultsReciever caller = (ResultsReciever)getCallingActivity();

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

caller.executeSomething(whatever);
于 2013-01-25T17:21:09.187 回答