gpt4 book ai didi

java - 如何从 Intent 迭代自定义对象的 ArrayList 并将它们添加到 LinearLayout 中?

转载 作者:行者123 更新时间:2023-12-01 23:41:21 26 4
gpt4 key购买 nike

我在 Intent 中有一个自定义 FlightData 对象的 ArrayList。我加载 Intent 并将 arraylist 设为 null,并且 foreach 循环还强制我使用 Object 作为类型。

将数组列表保存到 Intent 中:

intent.putParcelableArrayListExtra("FlightDataList", (ArrayList<? extends Parcelable>) flightDataList);

加载 Intent :

Intent intent = getIntent();
LinearLayout layout_datasheet = findViewById(R.id.layout_datasheet);
List flightDataList = intent.getParcelableArrayListExtra("FlightDataList");

if (flightDataList == null){
Log.d("flightDataList_size", "FlightDataList is null"); // this fires
}

assert flightDataList != null;
for (Object data : flightDataList){
data = (FlightData) data; // items in list are of type FlightData
TextView tv = new TextView(this);
tv.setText(data.toString());
layout_datasheet.addView(tv);
}

我的自定义类的可分割函数(x,y,时间,有 getters-setters):

@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];
}
};

最佳答案

1.首先在FlightData对象模型/pojo/class中实现Parceable

2. val flightDataList= ArrayList<FlightData>()

3. val args = Bundle()

4. args.putParcelableArrayList("FlightDataList", flightDataList)

5. intent.putExtra(args)

然后获取列表

val flightDataList = context.getIntent().getExtras().getParcelableArrayList("FlightDataList")

关于java - 如何从 Intent 迭代自定义对象的 ArrayList 并将它们添加到 LinearLayout 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58257776/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com