【问题标题】:How to use Parcelable and onClickListeners?如何使用 Parcelable 和 onClickListeners?
【发布时间】:2011-02-09 18:15:57
【问题描述】:

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

我正在尝试的是以下内容

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

关于第 4 点的问题:

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

感谢您抽出宝贵时间阅读。

【问题讨论】:

    标签: android json parcelable


    【解决方案1】:

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2011-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-25
      • 2013-08-15
      相关资源
      最近更新 更多