jjzjj

Parcelable

全部标签

android - 创建地 block 对象的副本

我正在使用parcel对象将值从一个进程传递到另一个进程。我想创建parcel对象的克隆,但我无法使用clone()方法如果有人知道如何创建parcel的副本,请提供解决方案。 最佳答案 建议的解决方案不完整,不会起作用。这是一个可行的解决方案:(我有一个名为MessageDescriptor类型的消息对象,我想克隆它)Parcelparcel=Parcel.obtain();message.writeToParcel(parcel,0);parcel.setDataPosition(0);MessageDescriptormess

java - Android Parcelable 和对象通过引用传递

我有许多对象,其中一些对象具有不同的ArrayList属性(自定义对象的)。相同的对象可能出现在上述任何一个ArrrayList中。我希望通过引用传递这些对象,这样当我编辑其中一个时,更改会反射(reflect)在所有ArrayLists/对象中。我需要将这些对象或ArrayList作为Parcelable传递给不同的Activity。我认为Parcelable接口(interface)导致按引用传递不起作用(考虑到您需要实现新的构造函数,哪种有意义,所以假设每次创建和传递Parcel时都会创建/克隆新对象?)。我想知道处理这种情况的最佳方法是什么,即。我怎样才能实现或模拟通过引用传递

java - Android Parcelable接口(interface)在哪里强制执行CREATOR对象

我在Android中使用Parceables,我对这个错误很好奇...11-2316:17:07.174:E/AndroidRuntime(1277):Causedby:android.os.BadParcelableException:ParcelableprotocolrequiresaParcelable.CreatorobjectcalledCREATORonclasscom.gleason.apahelper.model.PlayerTeam当然这是因为我错过了这个...publicstaticfinalParcelable.CreatorCREATOR=newParcela

java - Android - 多态性和Parcelable

我不知道在从包裹中写入/读取时如何使用多态性。我知道我需要在基类和所有派生类中实现Parcelable(如果子类具有我想写入parcel的附加属性)。我不明白的是,我不知道它是否可能是——如何从Parcelable中读取子类,即我如何知道我正在从包裹中读取哪种子类。我可以做一些hack,比如在parcel中写入一些指示器,告诉我使用什么类加载器,但我认为会有一些更优雅的方法,否则多态性就没有太多用处了。为了说明我的问题,假设我有这样的类(class):形状类publicclassShapeimplementsParcelable{publicfloatarea;publicShape(

java - 如何将包含位图的对象传递给另一个 Activity

所以我是Android开发的新手,我试图创建一个注册Activity(UserPrivateInfoSignUpActivity.java)来加载图片(Bitmap)并创建一个UserPersona我想传递给另一个Activity的对象(UserGeneralDataSignUpActivity)。我对解决方案进行了研究,尽管它已经implementsParcelable,但我仍然无法传递Bitmap图像。有什么建议吗?这是我的代码(没有getter和setter)PersonaUser.java:publicclassPersonaUserimplementsParcelable{p

Android - json-smart反序列化问题

当我尝试传递json-smartJSONObject时,我的Android代码出现了一个奇怪的问题或JSONArray作为可序列化的数据作为Intent可序列化的额外数据。Json-smart是非常快速和精简的JSON解析器实现,我强烈推荐它。JSONObject延伸HashMap和JSONArray延伸ArrayList开销很小。这些对象都不会覆盖Object#write或Object#read问题是:如果我在说Fragment#onSaveInstanceState(String,JSONObject)中使用这些对象一切正常。如果我在纯Java示例项目中序列化/反序列化这些对象,它

java - 在 Android 中持久化一个 Parcelable 对象

我的Android应用程序中有一个类,我已将其设为Parcelable,以便它可以在Activity之间传递。我希望能够将这个对象保存到文件系统中。似乎因为我已经实现了Parcelable,所以将它的输出通过管道传输到文件系统并稍后再读回是有意义的。有正确的方法吗?或者如果我想在Activity之间传递对象并将其保存到文件系统,我必须同时实现Parcelable和Serialiazble吗? 最佳答案 来自http://developer.android.com/reference/android/os/Parcel.htmlPar

android - 当一个 parcelable 对象通过一个 intent 传递时,它会更新对原始对象的引用吗?

假设我有一个具有pricetag属性的Product对象。我还有一个商店列表,每个商店都有自己的产品列表。具体来说,产品p的价格为9.99美元,商店列表中的商店s在其产品列表中有p。我在androidActivity中有这个商店列表,我通过Intent将Productp传递给另一个Activity,然后在新Activity中更改该对象的价格。一旦我完成这个新Activity并返回到旧Activity,对该对象所做的更改是否反射(reflect)在Store的产品列表中? 最佳答案 不,不维护引用。包裹是:Containerforam

android - 无法将 Uri 的 ArrayList 保存在文件 : NotSerializableException

我必须保存一个Ury的ArrayList,这样我才能使用代码publicstaticvoidsaveUriList(ArrayListmyUriList){if(storageAvailable()){try{FileOutputStreamuriListSaved=newFileOutputStream(baseDir+File.separator+filename);ObjectOutputStreamuriList=newObjectOutputStream(uriListSaved);uriList.writeObject(myUriList);uriList.close();

Android 可打包问题

我必须将一个数据对象从一个Activity传递到另一个Activity。最好的方法是使用Parcelable。数据对象有一些带有setter和getter方法的字段。设置一些字段并将对象传递给另一个Activity后,我观察到字段值已互换为其他字段值。写入包裹和读取包裹的字段顺序相同。publicvoidwriteToParcel(Parcelout,intflags){out.writeInt(id);out.writeString(appNo);out.writeString(this.policyNo);out.writeInt((int)this.AppRcptDt.getTi