繁体   English   中英

通过Android中的多个活动传递数据

[英]Passing data through multiple activities in android

我的申请中有三项活动。 第一个和第二个活动具有列表视图。 我需要从第一个和第二个活动中选择值,以便在第三个活动中显示一些数据。 哪个是最好的方法? 是将Intent从第一活动传递到第二活动,然后从第二活动传递到第三活动还是使用SharedPrefenreces更好?

这取决于您的需求。 如果您需要在应用程序被破坏的情况下保持数据持久性,那么您可能需要将数据保存在SharedPreferences (这也将取决于哪种数据类型,因为SharedPrefs并不限于它们可以存储的内容),或者一个数据库。

如果您不担心它具有持久性,那么可以通过Intent.putExtra()传递数据。 您还可以创建一个Bundle,并通过Intent传递Bundle并随需添加数据。

您还可以选择创建一个implements Serializable的单独的类。 然后,您可以通过Intents创建并传递类Object 这是关于这样做的帖子

是的,可以使用以下多种方法来实现

  • 意向
  • 共享首选项
  • Sqlite

  1. Sqlite :如果第一个和第二个活动中的数据很大,则可以使用Sqlite来存储数据,而在第三个活动中检索数据(但是如果数据较少,这不是可行的解决方案)

  2. 共享首选项 :在这里,您保存在共享首选项中的数据是在xml文件中完成的,因此即使应用程序停止了,数据也会保留。 这有助于保存密码和登录详细信息等

  3. 意图 :我的观点在您的情况下,通过意图传递数据是更好的选择,因为在您的第一,第二至第三次活动之间传递的数据量较小。


Finalizing ::只需将数据放入捆绑包中进行第一个活动。 接下来,获取第二活动中的数据(捆绑包),并将第二活动中的数据添加到从第一活动中接收到的捆绑包中的数据之外,然后将最终捆绑包从第二活动传递到第三活动中。

我认为,最简单的方法是创建一个ArrayManager类,其中的变量是静态的。 这样,您可以创建方法以选择ArrayManager类中的数组并调整其大小。 唯一不好的情况是您必须持有对视图,上下文或活动的引用(这将导致内存泄漏)。 在这种情况下,codeMagic的解决方案是理想的。

在您的情况下,如果您需要将相同的数据从第一个活动传递到第二个活动,则第三个活动和您的数据很小,那么我建议您使用Shared Preferences

如果从第一活动传递到第二活动的数据与第二活动到第三活动的数据不同,则只需使用意图。

有一个把戏。 如果您的第二个活动始终需要第一个活动的数据才能运行,那么当您想将第三个活动返回到第二个活动时,您将陷入困境,因为从第三个活动中您将无法获得第一个活动的结果。 在那种情况下,保存数据意味着Shared PreferencesSqlite是最好的。

在上述所有情况下,您都需要找到自己的最佳应用程序。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM