草庐IT

parceler

全部标签

android - 使用 Parcelable 将包含对象列表的对象传递给另一个 Activity

我的ActivityWorkerActivity包含一些工作人员的列表,我正在尝试将单击的工作人员对象传递给我的WorkerDetailActivity。我是java和android的新手,所以我正在寻找可能的解决方案,因为在这里的大多数答案中建议不要序列化并建议可打包,我尝试按照此处建议的方式执行此操作:Howtopassaparcelableobjectthatcontainsalistofobjects?最后3行代码,in.readList(machinePossession,null);部分显示以下错误:Typemismatch:cannotconvertfromvoidtoL

android - 在多态数组上实现 Parcelable 接口(interface)

我有一个名为ItinerarySegment的类型数组,这个类型有子类:WalkSegment、BusSegment等。publicinterfaceItinerarySegment{}publicclassWalkSegmentimplementsItinerarySegment{}publicclassBusSegmentimplementsItinerarySegment{}ItinerarySegment数组可打包时,我应该遵循什么样的策略?这里主要关心的是稍后在通过createTypedArray重新构造数组时如何使用它。方法(由writeTypedArray方法制备)。其中

android - 通过 bundle 传递的 parcelable 对象是否与原始对象相同?

这件事困扰了我一段时间。如果我们的Activity中有某种Parcelable对象,并使用Bundle将其传递给fragment,我一直认为我们在fragment中接收的对象实际上是一个新对象。然而,今天运行一些测试后,似乎fragment中的对象实际上与Activity中的对象相同。对吗?编辑:小澄清。我没有提到对象的值。我指的是“==”比较。 最佳答案 当你让你的对象Parcelable然后你使用Intent将它传递给另一个Activity时,像这样:Intenti=newIntent();i.putExtra("name_of

android - 如何在外部对象上实现 Parcelable?

我的应用使用JAR文件形式的外部库查询服务。当我查询这个服务时,我得到一个对象列表(对象是通用的,而不是对象),它们没有以当前形式实现Parcelable。我需要在Activity之间发送这些对象之一,所以我假设我需要以某种方式让它们实现Parcelable。但是,如果它们不是我的对象,我不确定该怎么做,而且我在网上找到的所有教程似乎都只处理作者为自己的项目创建的对象。如有任何帮助,我们将不胜感激。如果我需要澄清一些事情,请告诉我。 最佳答案 假设您可以自己实例化对象的新副本,您始终可以使用组合并实现您自己的Parcelable数据

android - Cant parcel a recycled bitmap 错误

我正在尝试将图像添加到相机表面View,并尝试使用以下代码获取该图像。elseif(v.equals(findViewById(R.id.ok_button))){//saveImage();topbar.setVisibility(View.GONE);menubar.setVisibility(View.GONE);bottom.setVisibility(View.GONE);Views=ml.getRootView();s.setDrawingCacheEnabled(true);Bitmapb=s.getDrawingCache();Bitmapwatermarkimage=

Android Parcelable 订单

我在Android应用程序中使用的一些Parcelable自定义类遇到了问题,我设法以一种非常奇怪的方式解决了这个问题。仅在少数特定情况下,我在读取parcelable时发生了崩溃(这让我认为我的实现并非完全错误)。java.lang.RuntimeException:UnabletostartactivityComponentInfo{com.worldcraze.worldcraze/com.worldcraze.worldcraze.AdActivity}:android.os.BadParcelableException:ClassNotFoundExceptionwhenun

java - 将 Parcelable 与带有 Hashmap 的对象一起使用

我有一个对象数组列表,存储在一个扩展intentService的类中。它的对象实例变量是:intid;Stringname;HashMaphistoricFeedData我希望能够将此arrayList传递回Activity。我读过Parcelable是当你想将对象从服务传递到Activity时的方法。我写入包裹的方法如下所示:publicvoidwriteToParcel(Parcelout,intflags){out.writeInt(id);out.writeString(name);dest.writeMap(historicFeedData);}不过,我不确定如何从包裹中读回

android - Parcelable vs 从数据库读取的效率

我有一个以下列方式列出“学期”的fragment:它访问数据库,生成一个数组,然后通过ListAdapter将其转换为View。在该fragment中还有一个添加按钮,用于打开一个新Activity,用户可以在其中创建一个新学期,该学期也将在同一Activity中插入到数据库中。创建一个学期后,我显然想在用户返回列表时显示它。为此,我有2个选择:将创建的学期作为对象发送回fragment。问题是它要求我在我的大多数类上实现Parcelable接口(interface),因为它们是嵌套的,这真的很乏味。使列表重新读取数据库中的学期并从头开始重新创建View。我的问题是;哪种方式会更快更有

android - 我怎么知道我的 Parcel.readStringArray() 数组有多大?

当我这样做时,我得到一个空指针异常:privateString[]foo;privatevoidreadFromParcel(Parcelin){in.readStringArray(foo);}看来我需要先分配数组。但是我怎么知道要让它变大呢?是不是要先写尺寸再读尺寸?有一个writeStringArray()方法来为我处理这个问题难道不是重点吗?来自AndroidDocumentation:Thereareavarietyofmethodsforreadingandwritingrawarraysofprimitiveobjects,whichgenerallyresultinwr

java - 为什么即使我没有实现必要的功能,Parcelable 也能工作?

我想在屏幕旋转期间保留一个复杂的java对象,所以我将对象设为Parcelable并实现了必要的方法:在writeToParcel(Parceldest,intflags)方法中,我将一些值保存到“dest”。在Parcelable.Creator的createFromParcel(Parcelsource)方法中,我以正确的顺序从“源”获取值并返回适当的对象。然后在Fragment的onSaveInstanceState中我保存了Parcelable:@OverridepublicvoidonSaveInstanceState(BundleoutState){super.onSave