gpt4 book ai didi

android - 在 Activity 之间传递 ArrayList

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:10:19 32 4
gpt4 key购买 nike

我已经实现了一个 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];
}
};

在我的 Activity 中,我试图将 arrayList 传递给其他 Activity :我被覆盖了 onItemClick 并以这种方式传递信息:

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);

并在其他 Activity 中接收它:

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");

我遇到空指针异常。我已经对它进行了调试,当我执行 getParcelableArrayList("eventos") 时我得到了 NULL,我的意思是,我的 arraylist eventos 是空的,所以,我没有收到任何信息。

任何帮助都会很棒

最佳答案

这段代码

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

应该是

Bundle informacion = new Bundle();
ArrayList<Eventos> mas = new ArrayList<Eventos>();
informacion.putSerializable("eventos", mas);
intent.putExtras(informacion);

并确保你的 Eventos 结构像一个可序列化的对象

private class Eventos implements Serializable {

}

阅读值(value)

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

关于android - 在 Activity 之间传递 ArrayList<CustomObject>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17942179/

32 4 0