2

我一直在阅读 Parcelables,我读得越多,我就越感到困惑。

我想要的是以下

  1. 连接到外部 API 以获取 JSON 数据(当前工作)。
  2. 我将 JSON 对象很好地解析为放在 HashMap 中的字符串。我正在使用 ListView 显示可滚动的数据(当前工作)
  3. 我已经设置了一个 onClickListener 来设置一个新的意图(目前正在工作)
  4. 这就是我感到困惑的地方 - 我的目标是允许用户单击 Listview 中的一个项目,这会将他们带到一个新屏幕,其中包含有关他们单击的项目的更多详细信息。

第 4 点的问题:

  1. 我是否使用 Parcelable 类将 JSON 对象传递到意图中?就我而言,这是最好的选择吗?
  2. 如果 Parcelable 是正确的选择,我会创建一个实现 Parcelables 的新类,以便传入 JSON 对象吗?我想我真的不确定如何进行。我见过的所有示例都只有一些字符串传递给 writeToParcel() 方法。不确定这如何转化为具有多个属性的对象。

感谢您花时间阅读。

4

1 回答 1

1

有多种方法可以将数据传递给下一个活动,哪种方法最适合您,这在一定程度上取决于您的数据有多复杂。一些选项:

Parcelable只是传递复杂对象的一种有效方法。如果你走这条路,那么是的,你会创建一个实现Parcelable. 您的写入方法可以根据需要变得复杂。如果您有一个复杂的对象树,只需让每个对象实现Parcelable并遵循该对象的writeToParsel方法来写出对象树的那部分。

一个更简单但效率较低的方法是让所有对象都实现Serializable。那里为您完成了序列化和反序列化,但它明显比Parcelable实现慢。

如果您的活动只需要一些原始信息,您也可以将它们作为自己的额外信息传递。

最后,您可以使用您的Application类扩展或其他一些单例来存储复杂的数据结构,并只需传递新Activity的一点点信息来查找其余数据。这减少了您需要传递的数据量,并可能帮助您解决活动启动和停止的问题。

于 2011-02-09T18:26:31.437 回答