【问题标题】:How to transmit ArrayList to other activity in android?如何将 ArrayList 传输到 android 中的其他活动?
【发布时间】:2017-11-12 00:08:36
【问题描述】:

在android中我有一个ArrayList如下:

ArrayList<SinglePoint> pointlist = new ArrayList<SinglePoint>();

我将与内容。完成当前活动后,我需要将此对象pointlist 传输到新活动。我尝试了以下方法(正如我在几个 SO 答案中发现的那样):

intent.putParcelableArrayListExtra("pointlist", pointlist);

在新活动中我有一行

ArrayList<SinglePoint> pointlist = (ArrayList<SinglePoint>)getIntent().getSerializableExtra("pointlist");

但是对于第二行我得到了错误

Error:(40, 56) error: incompatible types: ArrayList<SinglePoint> cannot be converted to ArrayList<? extends Parcelable>

如何解决这个问题?

我也尝试了here 的建议,但也不起作用。

并按照建议使用以下代码here

intent.putExtra("pointlist", pointlist);

ArrayList<SinglePoint> pointlist = (ArrayList<SinglePoint>)getIntent().getSerializableExtra("pointlist");

我得到了错误

java.lang.RuntimeException: Parcel: unable to marshal value com.impyiablue.checkpoint.tools.SinglePoint@2f4a7cec

【问题讨论】:

  • SinglePoint 是否实现 Parcelable?
  • 没有。什么是 Parcelable?
  • 您需要 SinglePoint 实现 Parcelable 才能将列表传递给其他活动。 developer.android.com/reference/android/os/Parcelable.html
  • 如果你想实现 Parcelable,你需要额外的代码。如果你想使用 Serializable,你只需要将实现 Serializable 添加到你的 SinglePoint。像这样:SinglePoint implements Serializable{ }
  • @Alex 使用 parcelable 而不是 searlization 3pillarglobal.com/insights/…

标签: java android arraylist


【解决方案1】:

SinglePoint 只需要实现 Parcelable 接口

这可能会有所帮助 AndroidParcelable

【讨论】:

    猜你喜欢
    • 2020-10-02
    • 1970-01-01
    • 1970-01-01
    • 2019-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-14
    • 1970-01-01
    相关资源
    最近更新 更多