gpt4 book ai didi

android - 在 Activity 之间传递 Parcelable 项目

转载 作者:行者123 更新时间:2023-11-29 21:36:24 24 4
gpt4 key购买 nike

我在通过 Intent 传递对象时遇到问题。我不断收到空指针错误。这是:

在我的 ListActivity 中:

@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
Intent intent = new Intent(MyListActivity.this, DetailsActivity.class);
intent.putExtra("this_item", my_array.get(position));
startActivity(intent);
}

在 DetailsActivity 类的 onCreate() 中:

thisItem = (MyObject) getIntent().getExtras().getParcelable("this_item");
System.err.println(thisItem.getDescription()); //<--Null pointer error!

MyObject 类确实实现了 Parcelable。为什么我不能把这个对象传过去?我很困惑。感谢您的帮助。

编辑:这是那个类:

public class MyObject implements Comparable<MyObject>, Parcelable {

private Date date;
private MyType my_type;
private String description;
private int flags;

public MyObject(Date date, MyType type, String desc) {
this.date = date;
this.my_type = type;
this.description = desc;
}

public Date getDate() {return date;}
public MyType getMyType() {return my_type;}
public String getDescription() {return description;}

public int compareTo(MyObject another) {
if (getDate() == null || another.getDate() == null) {return 0;}
return getDate().compareTo(another.getDate());
}

public int describeContents() {
return 0;
}

public void writeToParcel(Parcel dest, int flags) {
dest.writeInt(flags);
}

public static final Parcelable.Creator<MyObject> CREATOR = new Parcelable.Creator<MyObject>() {
public MyObject createFromParcel(Parcel in) {
return new MyObject(in);
}

public MyObject[] newArray(int size) {
return new MyObject[size];
}
};

private MyObject (Parcel in) {
flags = in.readInt();
}
}

最佳答案

如果你想通过 Intent 将数据从一个 Activity 传递到另一个 Activity ,对象必须在 android 中是可打包的或可序列化的。对于可打包的,你必须实现可序列化的接口(interface)。对于可打包的,你必须实现可打包的接口(interface)。。

像这样写parcelable类.. parcel example

关于android - 在 Activity 之间传递 Parcelable 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18327707/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com