我有一个带有容器FrameLayout的MainActivity,其中我更改了多个片段(片段A,片段B等)。
在其中一个片段中,让我们说片段A我必须打开另一个活动(活动X)。
问题在于,当我按下按钮时,我必须用片段B(在某种程度上在背景中)更改片段A,然后滑动活动X(带翻译动画),然后滑入片段B,所有这一切没有重新启动MainActivity,因为我必须保持状态。
我该怎么做? 感谢
答案 0 :(得分:2)
Android使用松散耦合的组件作为其主要构建块。如您所知,活动是主要的Android构建块之一。因此,活动之间的互动非常局限于几种方式。
通过startActivity()
,startActivityForResult()
等方式通过Intents传递数据。这种方式在您开始新活动时非常有用。
发送广播意图。一旦您想向其他应用程序的组件发送信号,这可能很有用。
使用共享的Application
对象。
Java静态字段和其他一些方法。
在您的情况下,如果您的第二项活动只是登录活动或类似活动,我建议您使用Dialog Fragment而不是第二项活动。
更新#1:
如果您真的想保留第二项活动,那么我个人建议使用本地广播机制。
还有另一种方法可以完成这项工作。您可以以startActivityForResult
开始第二个活动,然后每当用户从第二个活动返回到您的第一个活动时,您的第一个活动就会通过其onActivityResult
方法获得通知。在那里你可以切换这些片段。