草庐IT

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

android - 使用 Parcelable 将绘图保存到磁盘

我正在使用此代码保存和恢复我的自定义手绘View,如何使用此代码将我的绘图以矢量格式(而非位图)保存到sdcard上的文件和在下一个应用程序session中重新加载:@OverrideprotectedParcelableonSaveInstanceState(){//GetthesuperclassparcelablestateParcelablesuperState=super.onSaveInstanceState();if(mPoints.size()>0){//Currentlydoingaline,saveit'scurrentpathcreateHistoryPathFr

android - Parcelize 在对象和枚举上提示 "Parcelable should be a class"

当我尝试使用@Parcelize注释enumclass或object时,会导致错误'Parcelable'should是一个类,既作为编辑器提示又作为编译失败。我可以@Parcelize类就好了,但我不能做类似的事情@ParcelizeobjectMySingletion:Parcelable@ParcelizeenumclassDirection:Parcelable{N,E,W,S}即使Kotlin网站explicitlystates也会发生这种情况支持对象和枚举。有没有办法解决这个问题,以便我可以@Parcelize这些类型的类?理想情况下,是否有一种解决方案不涉及手动编码par

java - Parcelable 在没有正确实现的情况下工作

在Android应用程序中,我将Bundle从Activity发送到Fragment。publicclassBarimplementsParcelable{privateMaphash;privateintid;protectedBar(Parcelin){id=in.readInt();}publicBar(intid,Mapmap){this.hash=map;this.id=id;}publicstaticfinalCreatorCREATOR=newCreator(){@OverridepublicBarcreateFromParcel(Parcelin){returnnewB

java - ArrayList<custom-object> 的 Parcelable 实现

我认为这只是一个愚蠢的错误,但ArrayList总是以null结尾。这让我发疯所以我想寻求帮助。项目等级:importandroid.os.Parcel;importandroid.os.Parcelable;publicclassStoryTagimplementsParcelable{privateStringtagTitle;privateintoccurrence;publicStoryTag(){}publicStoryTag(Parcelin){tagTitle=in.readString();occurrence=in.readInt();}publicStringget

android - Location Client 在 PendingIntent 中请求位置更新和 parcelable extras

我正在使用LocationClient和PendingIntent来获取位置更新。PendingIntent.getService(context,0,newIntent(context,OnLocationAvail.class),PendingIntent.FLAG_UPDATE_CURRENT)上面的代码工作正常我从键LocationClient.KEY_LOCATION_CHANGED获取位置但是,当我有如下所述的额外可打包数据时,将使用可打包数据调用服务,但Intent额外内容中的键LocationClient.KEY_LOCATION_CHANGED始终为空。Intentc

java - 使用 Parcelable 发送 StringArray 时出现 NullPointerException

我在发送带有parcelable对象的Intent时遇到了奇怪的问题。这个对象有一个字符串数组。使用此答案HowtosendanobjectfromoneAndroidActivitytoanotherusingIntents?我首先将我的对象创建为可打包的,然后发送它。这是我的代码fragment:publicclassMyObjectimplementsParcelable{privateString_title=null;privateString[]_genre;privateint_time=0;privateString_disc=null;privatestaticfin

android - parcelable 遇到ioexception 写serializable 对象……?

代码SngList.setOnItemClickListener(newOnItemClickListener(){publicvoidonItemClick(AdapterViewa,Viewv,intposition,longid){Intentintent=newIntent(getActivity(),NowPlaying.class);intent.putExtra("Data1",Songinfo);intent.putExtra("Data2",position);startActivity(intent);}});接收类中的代码Intenti=getIntent();A

java - Surface在Android上被parceled后如何处理垃圾回收?

我正在使用sourcecodeforSurface.java作为这个问题的引用。Surface实现了Parcelable接口(interface),并且它还持有native端对象的句柄。我很想知道在这种情况下如何处理垃圾回收:Surface(A)创建并写入Parcel。之后再无提及。从Parcel中读取原始Surface(B)的副本;假设这发生在另一个用于渲染的线程上。这个实例现在拥有与(A)相同的native句柄,并且在某处有对该实例的强引用。发生GC并收集(A),因为它不再被引用。finalize()运行,它调用release(),后者又为native句柄调用nativeRelea