问题标签 [parcel]

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 投票
5 回答
86707 浏览

android - 如何在 Android 中使用 Parcel?

我正在尝试使用Parcel写然后读回一个Parcelable. 出于某种原因,当我从文件中读回对象时,它以null.

我错过了什么?

更新: 为了简化测试,我在原始示例中删除了文件的读取和写入。

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 投票
2 回答
14766 浏览

android - android 可打包字符串数组

我有

让它 Parceleable 的最干净的方法是什么?显然 String 本身是不可打包的,因此Parcel.writeList(ids)不起作用。

我正在考虑ArrayList<Uri> 将数组内容打包或放入Bundle.

0 投票
3 回答
22207 浏览

android - 可在哪里/何时使用 describeContents()?

有谁知道在哪里/何时调用Parcelable的这种方法?

它必须被覆盖。但是我应该考虑用它做一些有用的事情吗?

0 投票
3 回答
1588 浏览

android - Android - 捆绑列表时使用打包还是序列化?

应该如何List<MyClass>正确地从主要活动传递到次要活动?

据我了解,捆绑数据有两种方法:ParcelingSerializing. 各有什么优缺点?

谢谢

0 投票
2 回答
1121 浏览

android - 在库类上使用 Parcelable

我想在活动之间发送一个对象。阅读此内容后,我得出结论,使用 Parcelable 是最好的方法,因为它对性能的影响最小。我想这样做的原因是因为我需要从网络下载数据来创建一个对象,所以我不想继续下载数据。

但是,为了使用 Parcel,该类需要实现 Parcelable。当我试图发送在库中定义的对象时,我无法编辑类以包含它。

解决我的困境的最佳方法是什么?

我尝试扩展库类并实现 Parcelable,但因 ClassCastException 而失败。我还看到提到我应该创建一个包裹我的库类的 Parcelable 类并以这种方式发送?

谢谢!

0 投票
1 回答
264 浏览

android - 在某些设备上具有远程服务的应用程序中的 NPE(特定于市场?)

我有两个应用程序:第一个是远程服务。它的表现是:

第二个绑定到这个服务并执行一个方法。很明显:

现在奇怪的是,这些应用程序在 Android 2.1 的模拟器和我的 Cyanogen 7 (Android 2.3.2) 的根深蒂固的 HTC Hero 上运行得非常好。

它在 HTC Desire HD 和 Nexus S 上引发以下异常(均未植根):

我可以提供更多代码(例如 AsyncTask 的实现),但事实上,这段代码至少在两种情况下都有效,这让我想知道,这里可能有什么问题。有任何想法吗?

UPD:刚刚在该设备上安装了我的另一个使用 IPC 的应用程序,同样的问题。从市场上安装它 - 工作正常。签署了我当前的应用程序,然后重新安装它。没有帮助。对我的另一个应用程序做了同样的事情——也没有帮助。在这些设备上测试我的应用程序的唯一方法是将其部署到市场吗?

0 投票
0 回答
2275 浏览

android - 来自 readBundle 的 Android“坏幻数”错误

我一直在使用捆绑包在我的应用程序中传递我的信息,并且偶尔会通过首先将它们传递给包裹来将它们保存到文件中。

出于某种原因,有时当我尝试将它们放回捆绑包时,它会在我身上弹出由以下代码生成的“readBundle:bad magic number”错误:

0 投票
1 回答
1744 浏览

java - 包裹问题 // ArrayList

我目前正在尝试将对象的 ArrayList 从一个活动传递到另一个活动。经过大量搜索,我发现您可以将东西作为包裹传递。这是我最终做的事情:

这是部分对象:

当然,它也有 getter/setter。

这是创建列表的位置:

现在,这是收到它的地方:

如果我不使用包裹,而只使用数组 - 它工作正常。我注释掉了我的测试列表,它运行良好,否则它崩溃了。

我在执行包裹时做错了什么吗?我想不通。如果有人能尽快帮助我——那就太棒了。

0 投票
3 回答
4630 浏览

android - 解组 Parcelable 时出现 ClassNotFoundException

我在跨 Intent 解析 Parcelable 时遇到问题。

我创建parcelable使用

我在 onActivityResult 中收到它:

然后使用以下命令将其传递给另一个 Activity:

我的 Parcelable 有另一个 Parcelable,我在里面写和读 uisng:

我尝试使用不同的类加载器,从 ClassLoader.getSystemLoader() 到 MyClass.class.getClassLoader() 但我仍然得到一个运行时异常:

我的包裹是否在此之前的某个地方损坏了,还是我读错了?

亚历克斯