我在意图中有一个自定义 FlightData 对象的 ArrayList。我加载意图并将数组列表设置为 null,并且 foreach 循环还强制我使用Objectas 类型。
将 arraylist 保存到意图中:
intent.putParcelableArrayListExtra("FlightDataList", (ArrayList<? extends Parcelable>) flightDataList);
加载意图:
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];
}
};
皈依舞
慕沐林林
九州编程
守着星空守着你
相关分类