假设我有一个对象的引用,我应该如何将它从一个 Activity 传递到另一个?
我不想查询应用程序对象/单例/静态变量。
这还有可能吗?
假设我有一个对象的引用,我应该如何将它从一个 Activity 传递到另一个?
我不想查询应用程序对象/单例/静态变量。
这还有可能吗?
您可以在另一个活动中声明一个静态变量,或者在应用程序类中声明一些全局变量,然后将其访问到任何活动,例如您想从 OldActivity 解析一些 NewType 类型的对象到类 NewActivity。执行以下操作:
在 NewActivity.java 中声明一个静态 NewType 的对象。
public static NewObject newObject=null;
当您调用 NewActivity 时,请执行以下操作。
NewActivity.newObject=item;
Intent intent=new Intent(OldActivity.this, NewActivity.class);
startActivity(intent);
您可以通过以下方式之一执行此操作:
这是文档中的一个示例:您可以用 a 包装您的对象parcelable
,将其附加到一个意图,然后在接收活动中“解包”它。
public class MyParcelable implements Parcelable {
private int mData;
public int describeContents() {
return 0;
}
public void writeToParcel(Parcel out, int flags) {
out.writeInt(mData);
}
public static final Parcelable.Creator<MyParcelable> CREATOR
= new Parcelable.Creator<MyParcelable>() {
public MyParcelable createFromParcel(Parcel in) {
return new MyParcelable(in);
}
public MyParcelable[] newArray(int size) {
return new MyParcelable[size];
}
};
private MyParcelable(Parcel in) {
mData = in.readInt();
}
}
解决方案之一:
你可以制作一个单例类来携带你想要的信息
例如:
StorageManager.getInstance().saveSomething(Object obj);
然后用各自的getter方法取回
确保您处理同步问题;)