开发者社区> 问答> 正文

如何通过活动发送ArrayList <CustomClass>()

我有这个课:

public class FlightData implements Parcelable { private double x; private double y; private double time;

FlightData(double x, double y, double time){
    this.x = x;
    this.y = y;
    this.time = time;
}

private FlightData(Parcel in) {
    x = in.readDouble();
    y = in.readDouble();
    time = in.readDouble();
}


@Override
public int describeContents() {
    return 0;
}

@Override
public void writeToParcel(Parcel dest, int flags) {
    dest.writeDouble(x);
    dest.writeDouble(y);
    dest.writeDouble(time);
}

public static final Creator<FlightData> CREATOR = new Creator<FlightData>() {
    @Override
    public FlightData createFromParcel(Parcel in) {
        return new FlightData(in);
    }

    @Override
    public FlightData[] newArray(int size) {
        return new FlightData[size];
    }
};

...

} 我尝试将其打包,然后是意图。但是我什至无法在同一个活动中检索它(它在另一个活动中抛出null,所以我也尝试在当前活动中获取它-null):

    List<FlightData> flightDataList = new ArrayList<>();
    //... arraylist gets filled in
    intent = new Intent(this, DatasheetActivity.class);
    bundle = new Bundle();
    bundle.putParcelableArrayList("FlightDataList", (ArrayList<? extends Parcelable>) flightDataList);
    intent.putExtra("Bundle", bundle);

    Log.d("ErrorCustom",Integer.toString(flightDataList.size()));

//Log.d("ErrorCustom",Integer.toString(intent.getExtras().getParcelableArrayList("FlightDataList").size())); //throws null error

    startActivity(intent);

我确实想发送ArrayList,因为它被填充在当前活动中(带有进度条)。

展开
收起
被纵养的懒猫 2019-10-08 17:23:58 324 0
0 条回答
写回答
取消 提交回答
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载