Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.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 将自定义对象数组从一个活动转移到另一个活动_Java_Android - Fatal编程技术网

Java 将自定义对象数组从一个活动转移到另一个活动

Java 将自定义对象数组从一个活动转移到另一个活动,java,android,Java,Android,我创建了一个名为cardwiew的类。 cardwiew对象有1个属性:整数 我想将CardView对象的数组列表从MainActivity传输到MainActivity2 我尝试过这样做,但当我打印第一个(或任何)对象的getNumber时,它返回的是0,而不是我在new Cardview中设置的数字(int number) 代码如下: main活动onCreate(): CardView类: public class CardView implements Parcelable {

我创建了一个名为
cardwiew
的类。
cardwiew
对象
有1个属性:
整数

我想将
CardView
对象的数组列表从
MainActivity
传输到
MainActivity2
我尝试过这样做,但当我打印第一个(或任何)
对象的
getNumber
时,它
返回的是
0,而不是我在new Cardview中设置的数字(int number)

代码如下:

main活动onCreate()

CardView类:

public class CardView implements Parcelable {
    int number;
    public CardView(int number){
        this.number = number;
    }

    public int getNumber() {
        return number;
    }

    protected CardView(Parcel in) {
    }

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

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

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

    @Override
    public void writeToParcel(Parcel parcel, int i) {
    }
}
public类CardView实现可包裹{
整数;
公共卡视图(整数){
这个数字=数字;
}
public int getNumber(){
返回号码;
}
受保护的CardView(包裹中){
}
公共静态最终创建者=新创建者(){
@凌驾
公共CardView createFromParcel(地块在中){
返回新的CardView(在中);
}
@凌驾
公共CardView[]新数组(整数大小){
返回新的CardView[大小];
}
};
@凌驾
公共int描述内容(){
返回0;
}
@凌驾
公共无效书面包裹(包裹,内部i){
}
}
试试这个:

protected CardView(Parcel in) {
    number = in.readInt();
}

@Override public void writeToParcel(Parcel parcel, int i) {    
    parcel.writeInt(number); 
} 

默认情况下,未初始化的
int
变量的值将为
0
,因此
number
的初始值为0。有了这个构造器,
编号
从包裹接收。

我通过这个视频了解到:

我应该将以下代码添加到
cardwiew
类中

protected CardView(Parcel in) {
    number = in.readInt();
}

@Override
public void writeToParcel(Parcel parcel, int i) {
    parcel.writeInt(number);
}

由于这一行,第二个活动的应用程序在创建()时崩溃。这是一半答案,但谢谢。@覆盖公共无效writeToParcel(Parcel Parcel,int i){Parcel.writeInt(number);}我已经理解了,但真的,谢谢!请编辑您的答案,以便我将其标记为正确答案
protected CardView(Parcel in) {
    number = in.readInt();
}

@Override public void writeToParcel(Parcel parcel, int i) {    
    parcel.writeInt(number); 
} 
protected CardView(Parcel in) {
    number = in.readInt();
}

@Override
public void writeToParcel(Parcel parcel, int i) {
    parcel.writeInt(number);
}