Android 通过ArrayList<;CustomObject>;活动之间

Android 通过ArrayList<;CustomObject>;活动之间,android,android-activity,arraylist,parcelable,Android,Android Activity,Arraylist,Parcelable,我实现了一个Parcelable类: public class Evento implements Parcelable { private int; private String ; private String imagen; //more atts //Constructors, setters and getters public Evento(Parcel in) { this.id = in.readInt(); this.

我实现了一个Parcelable类:

public class Evento implements Parcelable {
    private int;
    private String ;
    private String imagen;
    //more atts

    //Constructors, setters and getters

public Evento(Parcel in) {
    this.id = in.readInt();
    this.titulo = in.readString();
    this.imagen=in.readString();

public void writeToParcel(Parcel dest, int flags) {     
    dest.writeInt(id);
    dest.writeString(titulo);
    dest.writeString(imagen);       
}
public static final Parcelable.Creator<Evento> CREATOR = new Parcelable.Creator<Evento>() {
    @Override
    public Evento createFromParcel(Parcel in) {
        return new Evento(in);
    }

    @Override
    public Evento[] newArray(int size) {
        return new Evento[size];
    }
};
public类Evento实现可包裹{
私人int;
私有字符串;
私有字符串图像;
//更多ATT
//构造函数、setter和getter
公共活动(包裹内){
this.id=in.readInt();
this.titulo=in.readString();
this.imagen=in.readString();
公共无效writeToParcel(Parcel dest,int标志){
目的地写入(id);
目的地书面资本(提图洛);
目的地记录(图像);
}
public static final Parcelable.Creator=新建Parcelable.Creator(){
@凌驾
公共事件o createFromParcel(地块中){
返回新事件(in);
}
@凌驾
public Evento[]新数组(整数大小){
返回新的Evento[size];
}
};
在我的活动中,我试图将arrayList传递给其他活动: 我将覆盖McClick,并通过以下方式传递信息:

public void onItemClick(AdapterView<?> a, View v, int position, long id) {
            //create new activitie
            ArrayList<Eventos> eventos = new ArrayList<Eventos>();
            Intent intent = new Intent(QueActivity.this, ProductosCategorias.class);

            //Create information
            Bundle informacion= new Bundle();
            informacion.putParcelableArrayList("eventos", eventos);
            intent.putExtras(informacion);
public void-onItemClick(适配器视图a、视图v、内部位置、长id){
//创建新活动
ArrayList eventos=新的ArrayList();
意向意向=新意向(QueActivity.this、ProductosCategorias.class);
//创建信息
Bundle informacion=新Bundle();
信息。putParcelableArrayList(“事件”,事件);
意图.额外信息(信息);
并在其他活动中接收:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_productos_categorias);     
    lv = (ListView) findViewById(R.id.listaCategoriaElegida);
    Bundle informacionRecibida = getIntent().getExtras();               
    ArrayList<Evento> eventos =new ArrayList<Evento>();
    eventos= informacionRecibida.getParcelableArrayList("eventos");
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u productos\u categorias);
lv=(ListView)findViewById(R.id.listaCategoriaElegida);
Bundle informacionRecibida=getIntent().getExtras();
ArrayList eventos=新的ArrayList();
eventos=informacionRecibida.getParcelableArrayList(“eventos”);
我得到了一个空指针异常。我已经清除了它,当我执行getParcelableArrayList(“eventos”)时,我得到了空值,我的意思是,我的arraylist eventos为空,因此,我没有收到任何信息

任何帮助都将非常有用

此代码

Bundle informacion= new Bundle();
informacion.putParcelableArrayList("eventos", ArrayList<Eventos> eventos);
intent.putExtras(informacion);
读取值

ArrayList<Eventos> madd=getIntent().getSerializableExtra(key);
ArrayList madd=getIntent().getSerializableExtra(键);

就性能和其他功能而言,Parcelable比序列化好得多

请参阅此链接:


您必须将捆绑包放在intent中。此外,此代码
informacion.putParcelableArrayList(“eventos”,ArrayList eventos)
甚至不编译,所以我不认为这是您正在使用的实际代码。可能的重复不是我正在使用的实际代码。我已经将捆绑包放入了目的中。@Sameer post不是重复的。他问起parcelable的问题,而您的回答是serializable,您实际上没有用他的代码解决问题,但建议使用som这完全不同,效率更低。我支持@TOMKA。请修复您的answerSerializable在Android中的性能非常差。请使用Parcelable。
private class Eventos implements Serializable {

}
ArrayList<Eventos> madd=getIntent().getSerializableExtra(key);