0

我正在做一个新项目来学习 android 编程。所以我想知道如何处理Activity之间的数据。

我有一个 MainActivity,它解析一个远程 XML 文件并将所有解析的数据放在一个列表中此外,MainActivity 显示所有 MyData 的列表,如果我单击一个项目,它将启动我的 DetailActivity。

但是现在我使用带有 MyData 项的 Parcelable 的 putExtra 来显示数据(仅文本)。所以我想知道这是否是正确的方法?

我还有一个问题。在 MainActivity 我处理一个远程 XML 文件,但如果我有一个处理第二个远程 XML 文件的活动 SecondActivity。我怎样才能只下载这两个文件一次,以避免在 MainActivity 和 SecondActivity 之间切换时多次下载。

谢谢

4

2 回答 2

4

将文件保存到手机以避免重复下载。只需检查文件是否存在,如果不存在,请下载并保存。至于在活动之间传递数据,Intent 的 putExtra 方法是正确的方法。我更喜欢可序列化而不是可打包,但这可能是因为可打包更难实现。

有关 putExtra 方法的简单示例,请看这里: StackOverflow 答案

于 2012-10-16T21:38:21.613 回答
0

取而代之的是,我将创建 Singleton 类来保存从 XML 解析的数据,这样两个活动都可以访问数据。处理 Parcelable 很困难,只能用于简单的数据类型。我也读过推荐这种方法。在您的情况下,请在单独的类中解析 XML。由于您使用的是列表,因此您的数据将被放置在 ArrayList 或 Array 中。您应该在活动之间传递的唯一内容是您希望显示详细信息并从 Singleton 类中的 ArrayList 检索它的数据索引。我已经使用了这种方法,而且您可以通过这种方式从应用程序中的任何 Activity 访问数据。

于 2012-10-16T21:40:21.847 回答