2011-02-09 127 views
2

我一直在阅读Parcelables,越读越多,我越来越困惑。如何使用Parcelable和onClickListeners?

我试图以如下

  1. 挂钩到外部API来获取JSON数据(目前的工作)。
  2. 我解析的JSON对象很好,我把它放在一个HashMap的字符串。我用一个ListView显示其是可滚动的数据(当前工作)
  3. 我设置的onClickListener它建立了一个新的意图(目前工作)
  4. 这里就是我越来越困惑 - 我的目标是允许用户点击列表视图中的一个项目,这些项目将带他们到一个新的屏幕,更多关于他们点击的项目的详细信息。

问题指向数4:

  1. 我用一个Parcelable类JSON对象传递到意图是什么?对我来说这是最好的选择吗?
  2. 如果Parcelable是正确的选择,我会创建一个新的类来实现传递JSON对象的Parcelables?我想我真的不知道如何继续。我所见过的所有例子都只有几个字符串,它们传递给writeToParcel()方法。不知道如何转换为具有多个属性的对象。

谢谢您花时间阅读。

回答

1

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

Parcelable只是传递复杂对象的有效方法。如果你走这条路线,那么你会创建一个实现Parcelable的新对象。根据需要,您的写入方法可能会很复杂。如果您有一个复杂的对象树,只需使每个对象都实现Parcelable并按照该对象的writeToParsel方法写出对象树的该部分。

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

如果您的活动只需要几位原始信息,您也可以将它们各自作为自己的额外信息。

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