【问题标题】:Receive ArrayList<ArrayList<LatLng>> through Intent通过 Intent 接收 ArrayList<ArrayList<LatLng>>
【发布时间】:2018-04-06 21:03:26
【问题描述】:

这个问题已经在这里Pass multidimensional ArrayList of LatLng through intent 提出,但没有实际答案。

我已经完成了那里的答案,我可以毫无错误地通过它,

intent.putExtra("lat_lng_list", mLatLonList);

但我无法在另一端收到它。我最接近的是使用:

final ArrayList<ArrayList<LatLng>> latLngList = intent.getParcelableExtra("lat_lng_list");

但这只是返回 null,即使它不是。我知道 LatLng 实现了 parcelable,我能够使用相同的 .putExtra 传递 LatLng 的 ArrayList 并使用 intent.getParcelableArrayListExtra() 检索它,但这也不适用于多维数据。任何事情都有帮助。

【问题讨论】:

标签: android android-intent arraylist multidimensional-array


【解决方案1】:

ArrayList 没有实现Parcelable,但它实现了Serializable。您不能使用getParcelableExtra 接收数据,而必须使用getSerializableExtra。像这样:

final ArrayList<ArrayList<LatLng>> latLngList = (ArrayList<ArrayList<LatLng>>) intent.getSerializableExtra("lat_lng_list");

如果您使用较大的ArrayList,您也可以使用intent.putParcelableArrayListExtra()intent.getParcelableArrayListExtra()。还要确保LatLng 实现Serializable

参考:

https://stackoverflow.com/a/28733592/5457878

【讨论】:

  • 哇,我之前尝试过使用它但是出错了,甚至没有考虑类型转换!非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-07-19
  • 1970-01-01
  • 1970-01-01
  • 2017-11-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多