我使用三个活动ActivitY,Activity和ActivityC.from ActivityA有onActivityResult函数我需要来自Activityc的结果我在b / w中穿越activityB
答案 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);