2014-08-28 67 views
-2

我似乎无法在任何地方找到它。这里是问题:如何将数据发送到不属于它的活动的片段?

我有一个片段A是来自活动A.该片段发射活动B.

我想从活动B发送到碎片A.如何做呢?

+1

发什么?你试过什么了? BroadcastReciver?服务?定制应用程序类?为什么你不把数据从活动B返回给A,然后让活动A将它发送到片段A ... – Selvin 2014-08-28 15:09:03

+0

我正在考虑这样做,是否有更直接的解决方案。问题是活动A可能在启动B – mskw 2014-08-28 15:10:36

+0

后被破坏我尝试使用持久性,其中在包中设置布尔值。但它看起来像一个黑客 – mskw 2014-08-28 15:11:27

回答

2

您可以尝试使用'startActivityForResult()'。这将启动该活动,然后完成后,它将允许您将一些数据返回到您重写的片段中的回调函数。这里有一个例子:

private void ActivityBStarter(){ 
    Intent i = new Intent(getApplicationContext(),ActivityB.class); 
    startActivtyForResult(i); 
} 
@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data){ 
    //use data.get... to get data from the activity. 
    //This is only called when the activity completes. 
} 

然后在活动中,当你要完成的活动,并将结果传回做到这一点:或者

Intent returnIntent = new Intent(); 
returnIntent.putExtra("result",result); 
setResult(RESULT_OK,returnIntent); //RESULT_OK can really be any int you want. 
finish(); 

,您可以使用信使和消息传递来传递数据在ActivityB和Activity之间运行ActivityB,但这通常不会非常有用,除非您使用Service。

这里有一个链接: Example: Communication between Activity and Service using Messaging

祝你好运!

相关问题