Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.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
Android 不在活动之间传递的可包裹数组_Android - Fatal编程技术网

Android 不在活动之间传递的可包裹数组

Android 不在活动之间传递的可包裹数组,android,Android,因此,我在两个活动之间传递一个可包裹数组时遇到了一个问题。出于某种原因,应用程序甚至在加载我正在调用的活动之前就爆炸了 这是我试图通过的物体 import android.os.Parcel; import android.os.Parcelable; public class Inventory implements Parcelable{ public String inventory_id = "" ; public String vin = "" ; public String sto

因此,我在两个活动之间传递一个可包裹数组时遇到了一个问题。出于某种原因,应用程序甚至在加载我正在调用的活动之前就爆炸了

这是我试图通过的物体

import android.os.Parcel;
import android.os.Parcelable;

public class Inventory implements Parcelable{
public String inventory_id = "" ;
public String vin = "" ;
public String stock = "" ;
public String new_used = "" ;
public String certified = "" ;
public String mileage = "" ;

public Inventory() {}

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

@Override
public void writeToParcel(Parcel dest, int flags) {
    dest.writeString(inventory_id);
    dest.writeString(vin);
    dest.writeString(stock);
    dest.writeString(new_used);
    dest.writeString(certified);
    dest.writeString(mileage);
}

public Inventory(Parcel source){
    inventory_id = source.readString();
    vin = source.readString();
    stock = source.readString();
    new_used = source.readString();
    certified = source.readString();
    mileage = source.readString();
}

public static final Parcelable.Creator<Inventory> CREATOR = new  Parcelable.Creator<Inventory>() {

    public Inventory createFromParcel(Parcel source) {
        return new Inventory(source);
    }

    public Inventory[] newArray(int size) {
        return new Inventory[size];
    }
};    
}
此代码从不加载Activity2。我可以在活动2中的onCreate方法中创建一个调试点,但它永远不会被调用。如果我注释掉intent.putParcelableArrayListExtra(“invList”,invList);,Activity2将加载,但当我到达需要invList的行时,它当然会爆炸,这让我相信活动之间的可包裹对象发生了一些事情。我的日志里什么都没有。它只是重新加载Activity1


非常感谢您的帮助。

发布堆栈跟踪,这非常有用。有多少库存项目(对象)?您通过附加项传递的内容的大小是有限制的。@bobnoble OK。这是一个有趣的问题。在我最初的问题中,我应该提到一些事情。列表的大小各不相同。当我发送20个对象时,我没有问题。但是,当它达到40岁时,它就不起作用了。限制是多少?我如何通过活动传递大型数组?据我所知,并没有正式定义最大大小。50K字节似乎是最大值。通过extras传递大数据的替代方法是将数据保存到文件中,通过intent将URL传递到文件。
Intent intent = new Intent(this, Activity2.class);
intent.putParcelableArrayListExtra("invList", invList); //This is a list of inventory objects.
startActivity(intent);