2017-08-24 45 views
0

获得一个结果要描述的情况,说我有3个活动:A,B,和C 并且在活性的一个按钮,用于启动活动B,并且在活性C使用时的按钮它被点击,就应该从活动c。发送到活动的结果的从一个活动

我的问题是...有没有办法从C结果传递至A?如果有办法,它是什么?

注意:如果你给的方式使用startActivityForResult(...)和onActivityResult(...)

预先感谢您的方法,这将是很好

+0

为什么不使用数据库(例如Firebase)来存储结果?并从活动C检索它? –

+0

@CatalinGhita我能做到这一点,但我想马上得到结果时,结果被传递,通过使用代码或类似onActivityResult()的方法 – user8447949

回答

0

有一个称为FLAG_ACTIVITY_FORWARD_RESULTIntent标志。呼叫:

Intent intent = new Intent(this, ActivityB.class); 
startActiivtyForResult(intent); 

开始Activity B时的(通过调用startActivityForResult(intent))。 当打开C,致电:

Intent intent = new Intent(this, ActivityB.class); 
intent.setFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT); 
startActiivtyForResult(intent); 
finish(); 

这意味着:打开C,接近B.然后,关闭胡亚蓉C使用时,请致电:

setResult(123); 
finish(); 

从C结果将回到A.

+0

你的意思,我应该在的onClick添加此行代码在活动B( ) 方法? – user8447949

+0

对不起,我不明白,你能详细解释一下吗? – user8447949

+0

编辑,这个问题,现在希望这个更清楚。 –

1

如果你只是使用像String对象这样简单的类型,你可以在B,C活动中使用Bundle和补充变量。并使用onActivity结果将其从C-> B-> A转移。或者你可以使用共享首选项。

+0

这是个好主意。不过,我想从C传递到一个立即 – user8447949

+0

让您导致活性C,然后将结果发送到共享偏好和共享偏好 –

+0

呼叫活动A和蒙古包结果,我想执行代码时的结果获得通过,通过使用一个代码或像onActivityResult()方法。 – user8447949

0

如果您正在从Activity C导航到Activity A,则可以使用Intent传输数据。否则,我建议使用Interface,然后在Activity A中的callback方法中传递数据作为参数。你说你想得到如onActivityResult这样的答案,为此,我猜Activity C应该退出或调用onActivityResultActivity A