如何使用Parcelable和onClickListeners?

时间:2011-02-09 18:15:58

标签: android json parcelable

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

我正在尝试的是以下

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

    1. 我是否使用Parcelable类将JSON对象传入intent?这是我个案中最好的选择吗?
    2. 如果Parcelable是正确的选择,我是否会创建一个新类来实现Parcelables以传递JSON对象?我想我真的不知道该怎么办。我看到的所有示例都只有几个字符串,它们传递给writeToParcel()方法。不确定如何转换为具有多个属性的对象。
    3. 感谢您抽出宝贵时间阅读。

1 个答案:

答案 0 :(得分:1)

有很多方法可以将数据传递到下一个活动,哪种方式最适合您,取决于您的数据有多复杂。一些选择:

Parcelable只是传递复杂对象的有效方法。如果你走这条路线,那么你会创建一个实现Parcelable的新对象。您的写入方法可能非常复杂。如果你有一个复杂的对象树,只需让每个对象实现Parcelable并遵从该对象的writeToParsel方法来写出对象树的那一部分。

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

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

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