我的应用程序使用JAR文件形式的外部库查询服务。当我查询这个服务时,我得到一个对象列表(对象通常使用,而不是对象),它们不以当前形式实现Parcelable。我需要在活动之间发送其中一个对象,所以我假设我需要以某种方式使它们实现Parcelable。但是,如果它们不是我的对象,我不知道如何这样做,我在网上发现的所有教程似乎只处理作者为自己的项目创建的对象。
非常感谢任何帮助。如果我需要澄清一些事情,请告诉我。
答案 0 :(得分:3)
假设您可以自己实例化对象的新副本,您可以始终使用合成并实现自己的Parcelable数据传输对象来进行传输:
在PObject上创建一个方法,该方法返回未实现Parcelable的对象的完全实例化副本。
您现在应该能够使用PObject实现来传输对象。
Parcelable interface的文档显示了传输整数的基本示例。
当然,这假设您需要Parcelable:如果活动在同一个过程中,您可以使用全局静态传递它们。它不是最漂亮的,但它通常足够好。
答案 1 :(得分:2)
另一种方法是使用您的Application来存储这些对象。简单的子类Application,使其成为单例并在Manifest.xml中声明它
public class MyApplication extends Application {
private static final MyApplication instance;
public static MyApplication getInstace() {
return instance;
}
public void onCreate() {
instance = this;
}
private MyObject myObj;
public MyObject getMyObject() {
return this.myObj;
}
public void setMyObject(MyObject myObj) {
this.myObj = myObj;
}
}
然后你可以存储它:
MyApplication.getInstance().setMyObject(anObject);
恢复它:
MyObject anObject = MyApplication.getInstance().getMyObject();
请记住: