Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从Intent遍历自定义对象的ArrayList并将其添加到LinearLayout中?_Java_Android - Fatal编程技术网

Java 如何从Intent遍历自定义对象的ArrayList并将其添加到LinearLayout中?

Java 如何从Intent遍历自定义对象的ArrayList并将其添加到LinearLayout中?,java,android,Java,Android,我在intent中有一个自定义FlightData对象的ArrayList。我加载intent并将arraylist设置为null,foreach循环还强制我使用Object作为类型 正在将arraylist保存到intent中: intent.putParcelableArrayListExtra(“FlightDataList”),ArrayList1。首先在FlightData对象模型/pojo/class中实现Parcelable 2.val flightDataList=ArrayLi

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

正在将arraylist保存到intent中:


intent.putParcelableArrayListExtra(“FlightDataList”),ArrayList1。首先在FlightData对象模型/pojo/class中实现Parcelable

2.
val flightDataList=ArrayList()

3.
val args=Bundle()

4.
args.putParcelableArrayList(“FlightDataList”,FlightDataList)

5.
intent.putExtra(args)

然后去拿清单


val flightDataList=context.getIntent().getExtras().getParcelableArrayList(“flightDataList”)

我怀疑您是否在FlightData中实现了Parcable
您是否尝试创建实现parcelable的数据结构

public class flightDataList implements Parcelable{
    String dataThingyString;
    int dataThingyInt;


    public flightDataList(String dataThingyString, int dataThingyInt){
        this.dataThingyString = dataThingyString;
        this.dataThingyInt = dataThingyInt;
    }

    public flightDataList(Parcle in){
        this.dataThingyString = in.readString();
        this.dataThingyInt = in.readInt();
    }

    @Override
    public void writeToParcel(Parcel dest, int flags){
        dest.writeString(dataThingyString);
        dest.writeInt(dataThingyInt);
    }

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

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

    public void setdataThingyString(String stringData){
        this.dataThingyString = stringData;
    }

    public void setdataThingyInt(int intData){
        this.dataThingyInt = intData;
    }

    public String getdataThingyString(){
        return dataThingyString;
    }

    public int getdataThingyInt(){
        return dataThingyInt;
    }

    @Override
    public int describeContents(){
        return 0;
    }
}
public类flightDataList实现可包裹{
字符串dataThingyString;
int dataThingyInt;
public-flightDataList(字符串dataThingyString,int-dataThingyInt){
this.dataThingyString=dataThingyString;
this.dataThingyInt=dataThingyInt;
}
公共航班数据列表(包裹中){
this.dataThingyString=in.readString();
this.dataThingyInt=in.readInt();
}
@凌驾
公共无效写入包裹(包裹目的地,内部标志){
目的写入字符串(dataThingyString);
目的写入(数据内容输入);
}
公共静态最终创建者=新创建者(){
@凌驾
public flightDataList createFromParcel(地块源){
返回新的flightDataList(源);
}
@凌驾
公共flightDataList[]新数组(整数大小){
返回新的flightDataList[大小];
}
}
公共void setdataThingyString(字符串stringData){
this.dataThingyString=stringData;
}
public void setdataThingyInt(int-int-data){
this.dataThingyInt=intData;
}
公共字符串getdataThingyString(){
返回dataThingyString;
}
public int getdataThingyInt(){
返回数据thingyint;
}
@凌驾
公共int描述内容(){
返回0;
}
}

它应该可以工作。在您的示例中,我唯一缺少的是构造函数。它可以解释您得到的
null

尝试为
FlightData

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

您的arraylist中包含哪些数据?即:仅字符串、字符串和整数、字符串整数和其他包裹?您是否为flightDataList数据结构创建了一个包裹类?3倍,更新了关于包裹实现的问题。IDE在运行前、我启动应用程序和切换activi后没有显示错误如果direct
putParcelableArrayListExtra
不起作用,这是另一种方法。我将列表放入捆绑包,捆绑包放入意图。捆绑包最后不是空的,但arraylist仍然是空的。将其放入我可以在同一个函数(和活动)中使用
getParcelableArrayList(“FlightDataList”)
获得它的捆绑包我把它放进去了。但在另一个活动中它是空的。更新的问题。你能告诉我我把它搞砸了吗?这都是由IDE自动生成的。正如你所看到的,它有3个双精度。下面Burhan Khanzada建议在意图中使用一个包…环顾四周,这似乎是一个相当标准的方法…你可能还想检查在你开始新的活动之前,我会看到你的意图已经被设定好,并且意图已经被发送出去了。