如何将有关列表项的信息传递给新列表活动?

时间:2014-04-27 15:56:17

标签: java android ios android-intent

来自iOS,我很难确定从一个活动转换到另一个活动时传递对象的最佳方法是什么。在iOS上,它很容易,因为您实例化了要显示的视图控制器。这意味着您可以将对象设置为视图控制器的属性,或者在传递相关数据的地方调用方法,这不起作用Android,因为活动基本上是由框架本身启动的,这就是您需要的原因使用意图。

从这篇文章中,我了解到解决这个问题最常用的两种方法是使用Parceable或某种序列化机制(如GSON)。

我想知道在我的情况下传递数据的适当方法是什么。我有两个班:

public class Series{
  private String name;
  private String description;
  private String imageTitle;
  private List<Episode>chapters;
}

public class Episode{
  private int episode;
  private String name;
  private String description;
  private String imageTitle;
}

我正在使用两个列表活动,第一个是Series列表。当用户在列表中选择一个系列项目时,将启动另一个列表活动并显示所有章节。

如何将有关所选系列的章节的信息正确传递给新活动?

2 个答案:

答案 0 :(得分:1)

  

据我所知,解决这个问题最常用的两种方法是使用Parceable或某种序列化机制(如GSON)

我希望这些不是最受欢迎的两种方法,因为它们可能是最糟糕的选择。

  

如何将有关所选系列的章节的信息正确传递给新活动?

你不是。您将该系列的标识符传递给另一个活动,然后该活动将检索相关数据并显示它。

如果您正在编写Web应用程序,并且想要从系列链接到显示剧集列表的页面,则不会以URL中的某些序列化方式传递整个剧集列表。相反,您将为该系列提供某种标识符。然后,Web应用程序将根据该标识符从任何地方检索剧集列表,并呈现生成的网页。

同样的事情在Android中基本成立。您可以传递所需的标识符,以便接收方可以从数据库,内存中的POJO缓存,网络或任何位置检索必要的数据。

答案 1 :(得分:1)

您可以使用片段而不是活动。然后,您可以使用界面访问活动中的数据。更好的是,只需在片段内加载数据。