从主机

时间:2015-10-06 14:44:20

标签: android android-fragments

我有一个带有容器FrameLayout的MainActivity,其中我更改了多个片段(片段A,片段B等)。

在其中一个片段中,让我们说片段A我必须打开另一个活动(活动X)。

问题在于,当我按下按钮时,我必须用片段B(在某种程度上在背景中)更改片段A,然后滑动活动X(带翻译动画),然后滑入片段B,所有这一切没有重新启动MainActivity,因为我必须保持状态。

我该怎么做? 感谢

1 个答案:

答案 0 :(得分:2)

Android使用松散耦合的组件作为其主要构建块。如您所知,活动是主要的Android构建块之一。因此,活动之间的互动非常局限于几种方式。

  • 通过startActivity()startActivityForResult()等方式通过Intents传递数据。这种方式在您开始新活动时非常有用。

  • 发送广播意图。一旦您想向其他应用程序的组件发送信号,这可能很有用。

  • 使用共享的Application对象。

  • Java静态字段和其他一些方法。

在您的情况下,如果您的第二项活动只是登录活动或类似活动,我建议您使用Dialog Fragment而不是第二项活动。

更新#1:

如果您真的想保留第二项活动,那么我个人建议使用本地广播机制。

还有另一种方法可以完成这项工作。您可以以startActivityForResult开始第二个活动,然后每当用户从第二个活动返回到您的第一个活动时,您的第一个活动就会通过其onActivityResult方法获得通知。在那里你可以切换这些片段。