Articles of parcelable

在Parcelable中列出 readStringArray

我的大部分Parcelable都在工作; 像out.writeString,out.writeInt,in.readString()等简单的东西工作得很好。 我的问题是当我想要Parcel一个Array / List / ArrayList(我已经尝试过所有这些)。 我目前正在尝试: List 和 out.writeStringList() 工作正常。 Eclipse建议有一个 in.readStringList(List list) 重读这些数据。但它并没有为我做这件事。 我们应该把什么放入()? 我没有尝试任何东西,结果’添加参数匹配……’我尝试过null,引用getter等等; 所有返回错误’无法从void转换为List’ 我在Android Developer中找不到任何关于此的内容。 有人可以帮忙吗? 谢谢 戴夫

如何在Parcel中使用writeStringArray()和readStringArray()

我最近在Androids Parcel类中遇到了一个非常愚蠢的(至少从我的角度来看)实现。 假设我有一个像这样的简单类 class Foo implements Parcelable{ private String[] bars; //other members public in describeContents(){ return 0; } public void writeToParcel(Parcel dest, int flags){ dest.writeStringArray(bars); //parcel others } private Foo(Parcel source){ source.readStringArray(bars); //unparcel other members } public static final Parcelable.Creator CREATOR = new Parcelable.Creator(){ public Foo createFromParcel(Parcel source){ return new Foo(source); } public Foo[] newArray(int […]

随机抛出android.os.TransactionTooLargeException

我从我的一个实时应用程序中看到了很多错误报告,原因是这个exception: java.lang.RuntimeException: Adding window failed at android.view.ViewRootImpl.setView(ViewRootImpl.java:513) at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:259) at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:69) at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2852) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2250) at android.app.ActivityThread.access$800(ActivityThread.java:135) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread.java:5017) at java.lang.reflect.Method.invokeNative(Method.java) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) at dalvik.system.NativeStart.main(NativeStart.java) Caused by: android.os.TransactionTooLargeException at android.os.BinderProxy.transact(Binder.java) at android.view.IWindowSession$Stub$Proxy.addToDisplay(IWindowSession.java:683) at android.view.ViewRootImpl.setView(ViewRootImpl.java:502) at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:259) at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:69) at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2852) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2250) at android.app.ActivityThread.access$800(ActivityThread.java:135) at […]

我可以将自定义对象发送到Android Wear吗?

我刚学习如何开发Android Wear,我已经为智能手表创建了一个全屏活动,在我的应用程序的移动部分,我获得了一些JSON数据,并从中创建了一个自定义对象列表。 在我的移动应用程序中,我在ListView中显示这些对象的信息。 在我的应用程序的Wear部分,我想显示此列表的限制版本,例如列表中的前3个将显示在Wearable上的全屏应用程序上。 我的问题是似乎没有办法将Parcelable Objects发送到Android Wear,因此没有选项将putParcelable放在DataItem中。 看起来唯一的选择是以字节为单位发送对象,如下所示: public void sendWearableData(GoogleApiClient aGoogleApiClient, ArrayList myObjectList, String path) { googleApiClient = aGoogleApiClient; byte[] testBytes = new byte[0]; if (googleApiClient.isConnected()) { PutDataMapRequest dataMapRequest = PutDataMapRequest.create(path); try { testBytes = BytesUtils.toByteArray(myObjectList); } catch (IOException e) { e.printStackTrace(); } dataMapRequest.getDataMap().putByteArray(Constants.TEST_KEY, testBytes); PutDataRequest request = dataMapRequest.asPutDataRequest(); Wearable.DataApi.putDataItem(googleApiClient, request); } } 所以我必须将我的对象转换为字节,将其发送到Android […]

如何使界面Parcelable?

如何使Interface对象Parcelable? public interface Options{ public String getAction(); public String getType(); } public class OptionsInfo implements Parcelable { private int duration; private ArrayList path; public OptionsInfo(int duration) { super(); this.duration = duration; this.path = new ArrayList(); } public ArrayList getPath() { return path; } public void setPath(ArrayList path) { this.path = path; } public void addToPath(Options […]

使用String将枚举写入parcel

我有这样的Parcelable枚举: public enum Option implements Parcelable { DATA_BASE, TRIPS, BIG_PHOTOS, OLD_PHOTOS, FILTERS_IMAGES, CATEGORIES_IMAGES, PAGES, SOUNDS, PUBLIC_TRANSPORT, MAPS; public static final Parcelable.Creator CREATOR = new Parcelable.Creator() { public Option createFromParcel(Parcel in) { return Option.values()[in.readInt()]; } public Option[] newArray(int size) { return new Option[size]; } }; @Override public int describeContents() { return 0; } @Override public void […]

Android中Bundle的错误幻数

我使用以下代码将数据从一个活动传递到其他活动: @Override public void execute(List reports, Questions question) { Intent replyIntent = new Intent(listener, ReplyActivity.class); replyIntent.putExtra(“id”, 0L); replyIntent.putExtra(“questions”, question); listener.openReportOk(question); listener.startActivity(replyIntent); } 监听器是回调的活动参考。 问题是这堂课: @Table(name = “Questions”) public class Questions extends Entity implements Parcelable { public static final Creator CREATOR = new Creator() { public Questions createFromParcel(Parcel source) { return new Questions(source); } public Questions[] […]

附加Parcelable的大小限制?

我想知道附加到Intent Parcelable是否有任何大小限制? 我再次阅读一些关于Intents , Bundles , Parcelable文档,并且没有关于大小限制的内容。 但我读了一些答案 ,说附加的Parcelable大小是有限的(例如,1 MB)。 那么Parcelable受大小限制还是只取决于设备?

如何:在Android中包裹位图

我有一个序列化的类,我想添加一个位图,但Bitmap不支持序列化。 相反,我认为我会使用一个包裹,但不能让它工作。 这是使用局部variables的一些测试代码: Parcel parcel; Bitmap sourceBitmap; Bitmap destinationBitmap; parcel = Parcel.obtain(); sourceBitmap = Bitmap.createBitmap(200, 400, Config.ARGB_8888); sourceBitmap.writeToParcel(parcel, 0); destinationBitmap = Bitmap.CREATOR.createFromParcel(parcel); 我在上面的最后一行收到以下错误: 09-06 21:18:20.463: DEBUG/skia(17716): Bitmap_createFromParcel unknown config: 0 09-06 21:18:20.473: DEBUG/AndroidRuntime(17716): Shutting down VM 09-06 21:18:20.483: WARN/dalvikvm(17716): threadid=3: thread exiting with uncaught exception (group=0x4001b188) 09-06 21:18:20.493: ERROR/AndroidRuntime(17716): Uncaught handler: thread main exiting due […]

Android在SQLite中存储一个Parcelable对象

我需要在Sqlite中存储对象内容。 我想知道哪个是使用对象序列化或使用Parcelable进行此操作的最佳方法。 是否可以将其存储为Parcelable? 我该怎么做?