我使用三个活动 ActiviytA、ActivityB 和 ActivityC。来自 ActivityA 具有 onActivtResult 功能我需要来自 Activityc 的结果在 b/wi 中通过 activityB
问问题
1977 次
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 回答