问题标签 [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.

0 投票
2 回答
3449 浏览

android - 将 Parcelable 与循环引用一起使用

看起来 Parcelable 并没有像 Serializable 那样优雅地处理循环引用。在以下示例中,Bar 的序列化工作正常,但将其写入 Parcel 会导致堆栈溢出:

我正在尝试将一些代码从使用 Serializable 移植到使用循环引用的 Parcelable。是否有使用 Parcelable 处理此问题的好策略?

0 投票
3 回答
16004 浏览

java - 将 Parcelables 数组写入 Android 中的 Parcel

我正在尝试使用 writeParcelableArray将实现Parcelable的对象数组写入Parcel

我试图写的对象被定义(如你所料)为:

我正在尝试将它们写入一个“包裹”:

当 Eclipse 尝试编译它时,我得到了错误:

绑定不匹配:Parcel 类型的泛型方法 writeParcelableArray(T[], int) 不适用于参数 (Arrival[], int)。推断类型 Arrival 不是有界参数 < T extends Parcelable > 的有效替代品

我完全不明白这个错误信息。Parcelable是一个接口(不是一个类),所以你不能扩展它。有人有想法么?

更新:ArrayList将of Parcelables 放入 an时,我遇到了基本相同的问题Intent

产量:

Intent 类型中的 putParcelableArrayListExtra(String, ArrayList< ? extends Parcelable >) 方法不适用于参数 (String, ArrayList< Location >)

这可能是因为Location是我在上面工作的类(包装了Arrivals),但我不这么认为。

0 投票
10 回答
47348 浏览

java - 解组parcelables的问题

我有一些实现Parcelable的类,其中一些类相互包含作为属性。我将这些课程编组为一个包裹,以便在活动之间传递它们。将它们编组到包裹工作正常,但是当我尝试解组它们时,我收到以下错误:

LayoverType班级(失败的地方):

这是LocationType课程:

更新 2:据我所知,它在以下代码中失败(来自Parcel 的源代码):

为什么找不到类?它既存在又实现Parcelable

0 投票
3 回答
2277 浏览

android - Android,客户端-服务器应用程序中的可序列化/可打包问题

我想通过 TCP 套接字将复杂数据从我的 android 发送到远程服务器。我知道我需要序列化对象。在 Android 中,这是通过 parcelable 完成的。但这是一个 android 特定的接口,服务器只知道可序列化的接口。反之亦然 android 不知道可序列化的接口。

android 和服务器都必须“知道”该对象,但它们以两种不同的方式实现(服务器--> 可序列化,android--> 可打包)

如何正确使用这些接口,以便可以通过 TCP 将对象成功发送到服务器?

0 投票
10 回答
148493 浏览

java - 如何将 Bitmap 对象从一个活动传递到另一个活动

在我的活动中,我创建了一个Bitmap对象,然后我需要启动另一个Activity,如何Bitmap从子活动(将要启动的那个)传递这个对象?

0 投票
5 回答
8817 浏览

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 教程的链接吗?当我的应用程序进一步扩展时,任何可以帮助我理解并停止进一步头痛的事情。

任何帮助,将不胜感激。

0 投票
1 回答
1203 浏览

android - 如果类在构造函数中需要附加参数,如何使用 Parcelable

我正在尝试使用能够使用 Parcelable 接口序列化其状态的泛型创建类。问题是该类必须包含带有单个参数的构造函数 - Parcel,但在我的情况下,我需要创建带有附加参数的类。此外, Parcelable.Creator 不允许使用泛型。

这是一个例子:

public class Sample<T> {

...

public Sample(Context ctx, SomeInterface iface, Parcel parcel) {...}

...

}

最好的做法是什么?

0 投票
4 回答
38922 浏览

android - 将对象放入 Handler 消息中

我需要在不同的线程中从 Internet 下载图像,
然后在处理程序消息中将该图像对象发送到 UI 线程。

我已经有了这个:

当我收到这条消息时,我想提取对象:

但这给了我:

任何人都可以帮忙吗?


顺便说一句,这是将对象传递给 UI 线程 的最有效方式吗?

谢谢你们!

0 投票
1 回答
2881 浏览

android - 关于可包裹对象的问题

我想在 onSaveInstanceState 上保存 Parcelable Restaurant 对象的列表。我创建了一个扩展 Parcelable 的 Restaurant 类和一个 RestaurantList 对象,如下所示。在我的主要活动中,我使用 GSON 直接从 json 互联网数据填充我的 RestauranList:

现在,当我想使用保存餐厅对象列表时

我收到一个错误(如下所示),我猜是因为未写入 Parcelable 数据。我该怎么做?我是否必须在我的主要活动中创建一个 Parcel 对象数组并通过为每个 Restaurant 对象调用 writeToParcel 来填充它?

感谢您的任何建议

朱利安

++++++

LogCat(它在 outState.putParcelableArrayList("restoList", (ArrayList)restaurantList.getRestaurants()); 中崩溃)

RestaurantList 类

餐厅类

0 投票
14 回答
213360 浏览

android - Android:Parcelable 和 Serializable 之间的区别?

为什么Android提供2个接口来序列化对象?可序列化对象是否与 AndroidBinder和 AIDL 文件互操作?