问题标签 [parcelable]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 将 Parcelable 与循环引用一起使用
看起来 Parcelable 并没有像 Serializable 那样优雅地处理循环引用。在以下示例中,Bar 的序列化工作正常,但将其写入 Parcel 会导致堆栈溢出:
我正在尝试将一些代码从使用 Serializable 移植到使用循环引用的 Parcelable。是否有使用 Parcelable 处理此问题的好策略?
java - 将 Parcelables 数组写入 Android 中的 Parcel
我正在尝试使用 writeParcelableArray将实现Parcelable的对象数组写入Parcel。
我试图写的对象被定义(如你所料)为:
我正在尝试将它们写入一个“包裹”:
当 Eclipse 尝试编译它时,我得到了错误:
绑定不匹配:Parcel 类型的泛型方法 writeParcelableArray(T[], int) 不适用于参数 (Arrival[], int)。推断类型 Arrival 不是有界参数 < T extends Parcelable > 的有效替代品
我完全不明白这个错误信息。Parcelable
是一个接口(不是一个类),所以你不能扩展它。有人有想法么?
更新:ArrayList
将of Parcelable
s 放入 an时,我遇到了基本相同的问题Intent
:
产量:
Intent 类型中的 putParcelableArrayListExtra(String, ArrayList< ? extends Parcelable >) 方法不适用于参数 (String, ArrayList< Location >)
这可能是因为Location
是我在上面工作的类(包装了Arrival
s),但我不这么认为。
java - 解组parcelables的问题
我有一些实现Parcelable的类,其中一些类相互包含作为属性。我将这些课程编组为一个包裹,以便在活动之间传递它们。将它们编组到包裹工作正常,但是当我尝试解组它们时,我收到以下错误:
LayoverType
班级(失败的地方):
这是LocationType
课程:
更新 2:据我所知,它在以下代码中失败(来自Parcel 的源代码):
为什么找不到类?它既存在又实现Parcelable
。
android - Android,客户端-服务器应用程序中的可序列化/可打包问题
我想通过 TCP 套接字将复杂数据从我的 android 发送到远程服务器。我知道我需要序列化对象。在 Android 中,这是通过 parcelable 完成的。但这是一个 android 特定的接口,服务器只知道可序列化的接口。反之亦然 android 不知道可序列化的接口。
android 和服务器都必须“知道”该对象,但它们以两种不同的方式实现(服务器--> 可序列化,android--> 可打包)
如何正确使用这些接口,以便可以通过 TCP 将对象成功发送到服务器?
java - 如何将 Bitmap 对象从一个活动传递到另一个活动
在我的活动中,我创建了一个Bitmap
对象,然后我需要启动另一个Activity
,如何Bitmap
从子活动(将要启动的那个)传递这个对象?
android - Android应用程序在方向更改时重置,最好的处理方式?
所以我正在制作一个基本的国际象棋应用程序来玩转android编程的一些不同元素,到目前为止我学到了很多东西,但这次我迷路了。
当模拟器的方向改变时,活动被重置。根据我的研究,任何时候应用程序暂停/中断都会发生同样的事情,即。换键盘、打电话、敲home键等。
显然,不断重置国际象棋游戏是不可行的,所以我再次发现自己需要学习如何解决这个问题。
我的研究提出了一些主要内容,覆盖我的 Activity 中的 onPaused 方法、监听方向、清单中的键盘更改(通过 android:configChanges)、使用 Parcelables 或序列化。
我已经使用 Pacelables 查找了很多示例代码,但老实说它太令人困惑了。也许明天带着新的眼光回来会是有益的,但现在我看 Parcelables 的次数越多,它的意义就越小。
我的应用程序使用了一个 Board 对象,它有 64 个 Cell 对象(在一个 8x8 2D 数组中),每个单元格都有一个 Piece Object,如果空间为空,则可以是实际的一块或 null。假设我使用 Parcelable 或 Serialization,我假设我必须对每个类、Board、Cell 和 Piece 进行 Parcelize 或序列化。
首先,Parcelable 或 Serialization 是否是解决这个问题的正确方法?如果是这样,Parcelable 或 Serializable 是首选吗?我是否正确假设这三个对象中的每一个都必须被打包/序列化?最后,有人有一个简单易懂的 Parcelable 教程的链接吗?当我的应用程序进一步扩展时,任何可以帮助我理解并停止进一步头痛的事情。
任何帮助,将不胜感激。
android - 如果类在构造函数中需要附加参数,如何使用 Parcelable
我正在尝试使用能够使用 Parcelable 接口序列化其状态的泛型创建类。问题是该类必须包含带有单个参数的构造函数 - Parcel,但在我的情况下,我需要创建带有附加参数的类。此外, Parcelable.Creator 不允许使用泛型。
这是一个例子:
public class Sample<T> {
...
public Sample(Context ctx, SomeInterface iface, Parcel parcel) {...}
...
}
最好的做法是什么?
android - 将对象放入 Handler 消息中
我需要在不同的线程中从 Internet 下载图像,
然后在处理程序消息中将该图像对象发送到 UI 线程。
我已经有了这个:
当我收到这条消息时,我想提取对象:
但这给了我:
任何人都可以帮忙吗?
顺便说一句,这是将对象传递给 UI 线程 的最有效方式吗?
谢谢你们!
android - 关于可包裹对象的问题
我想在 onSaveInstanceState 上保存 Parcelable Restaurant 对象的列表。我创建了一个扩展 Parcelable 的 Restaurant 类和一个 RestaurantList 对象,如下所示。在我的主要活动中,我使用 GSON 直接从 json 互联网数据填充我的 RestauranList:
现在,当我想使用保存餐厅对象列表时
我收到一个错误(如下所示),我猜是因为未写入 Parcelable 数据。我该怎么做?我是否必须在我的主要活动中创建一个 Parcel 对象数组并通过为每个 Restaurant 对象调用 writeToParcel 来填充它?
感谢您的任何建议
朱利安
++++++
LogCat(它在 outState.putParcelableArrayList("restoList", (ArrayList)restaurantList.getRestaurants()); 中崩溃)
RestaurantList 类
餐厅类
android - Android:Parcelable 和 Serializable 之间的区别?
为什么Android提供2个接口来序列化对象?可序列化对象是否与 AndroidBinder
和 AIDL 文件互操作?