我正在开发一个新项目来学习android程序。 所以我想知道如何在Activity之间处理数据。
我有一个MainActivity,它解析远程XML文件并将所有已解析的数据放入List中 此外,MainActivity显示所有MyData的列表,如果我点击一个项目,它就会启动我的DetailActivity。
但现在我使用带有MyData项的Parcelable的putExtra来显示数据(仅文本)。 所以我想知道这是否正确?
我还有另一个问题。 在MainActivity中,我处理一个远程XML文件,但是如果我有一个活动SecondActivity,它处理第二个远程XML文件。 如何只下载这两个文件,以避免在MainActivity和SecondActivity之间切换时进行多次下载。
由于
答案 0 :(得分:4)
将文件保存到手机以避免重复下载。只需检查文件是否存在,如果不存在,请下载并保存。至于在活动之间传递数据,Intent的putExtra方法是正确的方法。我更喜欢可序列化到parcelable,但这可能是因为parcelable更难实现。
有关putExtra方法的简单示例,请查看此处: StackOverflow answer
答案 1 :(得分:0)
在你的位置,我会创建Singleton类来保存从XML解析的数据,这样两个活动都可以访问数据。处理Parcelable很困难,只能用于简单的数据类型。我也读过这种方法是值得推荐的。 在您的情况下,在单独的类中解析XML。由于您使用的是List,因此您的数据将被放置在ArrayList或Array中。您应该在Activities之间传递的唯一内容是要为其显示详细信息并从Singleton类中的ArrayList检索它的数据索引。我已经使用过这种方法,而且您可以通过这种方式从应用程序中的任何Activity访问数据。