问题标签 [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 投票
1 回答
2576 浏览

java - 在 NullPointerException 中获取 getParcelableArrayListExtra 返回?

Parcelable 类是:

数据是通过这样的意图发送的:

并在另一端接收数据,这使得 NullPointerExceotion

LogCat 输出:

0 投票
3 回答
1856 浏览

java - Android Parcelable 无法实例化类型

我正在开发一个 Android 应用程序,我正在尝试使用 Parcelable 传递信息。这就是我所拥有的。

但是,当我尝试编译时,我得到了错误(我放置评论的地方)

无法实例化类型角色

对此有什么想法吗?

此致

0 投票
1 回答
3200 浏览

android - Find binder object in parcel

How can i find binder object in a android parcel? i want to marshall a parcel which has got a bitmap but i got Runtime exception says that the parcel has got binder object.

0 投票
0 回答
1093 浏览

android - Android自定义KeyEvent未传递给TextView

我编辑了 SoftKeyboard IME Android 示例代码以将自定义 KeyEvent 传递给我的应用程序。我使用这个KeyEvent Constructor来做到这一点:

在我的应用程序中,我有一个 CustomTextView,我在这个线程之后设置了,我写了onKey()这样的:

但是event.getCharacters()永远不会返回非空字符串!这里有什么我想念的吗?没有太多的文档来管理我试图操纵这个特定的 KeyEvent 构造函数来达到我自己的目的。

编辑: KeyEvent.writeToParcel(...) 函数似乎没有打包字符串,因此当 KeyEvent 发送到 TextView 时数据会丢失。

我尝试对以这种方式构造的 KeyEvent 进行编组和解组,实际上该字符串不再存在。这种行为很奇怪。有人知道为什么吗?

最后一条日志语句总是产生空值。

0 投票
3 回答
5311 浏览

android - NDK 中的共享内存区域

我想要一个ashmem从本机代码映射和访问的共享内存块(一个区域)。我还希望这个块被多个应用程序使用。我也希望它在 SDK 7 级(Android 2.1)上工作

有两条路线。我可以在本机代码中创建一个 ashmem 区域;但问题是 - 我如何将整数文件描述符传递给另一个进程?您可以通过 a 编组FileDescriptor对象Parcel,但无法围绕原始 FD 构造对象。还有ParcelFileDescriptor支持构造和检索整数 FD,但相关方法仅在 SDK 级别 12 或更高级别中支持。

或者,我可以创建一个MemoryFile. 在 Parcels 中传递它有一种丑陋的方式。但是我如何从中检索文件描述符,以便本机代码有一些东西mmap()呢?

0 投票
1 回答
92 浏览

android - 在 Android 中是否有使用反射来打包对象的库?

是否有一个库能够使用反射在 Android 中打包对象?类似于 Gson 但用于 Parcelization 的东西。

0 投票
1 回答
1471 浏览

android - 拆包错误 Android

我遇到了一个问题,即Object从 a 实例化 aParcel会抛出NullPointerException. My Class Contact实现Parcelable,包含一个 CREATOR,并且所有连接似乎都有效。Contact对象表示通讯簿中的联系人。使用的变量有以下类型:

构造函数将所有字符串初始化为 "" 并将所有列表初始化为空列表。和方法writeToParcel如下Contact(Parcel in)所示:

...

我目前正在进行的测试提供了有效的名字和姓氏、一个电话号码和一张便条。我在打包这个包裹时得到的相关输出如下:

我做错了什么?数字不能写成字符串列表,还是我做错了什么?

0 投票
1 回答
321 浏览

android - 由于可打包对象,在片段上保存状态会产生 StackOverflow 错误

我在一项活动下使用 2 个不同的片段。其中一个片段包含一个列表,另一个片段包含列表中每个元素的详细视图。当活动创建片段时,2 个对象作为新实例的参数传递。

这是一个复杂的对象,其中包含许多字段(BigIntegers、ArrayLists、Strings..)。该对象实现 Parcelable 以便与片段一起使用。当信息通过分片传递时,解析数据没有任何问题,实际上我认为为了保存状态,需要这些对象是可打包的,而不是作为分片之间的参数传递。

该对象包含在一个对象列表中,其中包含对主要对象的引用。将 O1 作为对象 1,将 O2 作为对象 2,这将是一个“图形”解释:

O1:

  • 细绳
  • 大整数
  • 数组列表
  • ……
  • 数组列表

氧气:

  • 大整数
  • O1<-------- 这是对 O1 对象的引用

当我离开活动(通过单击手机中的主页)并尝试保存状态时,我收到 StarOverflow 错误。是否与 parcelable 进入无限循环试图保存整个对象而不是引用有关?我在 android 上处理 parcelable 对象时遇到了很多麻烦。

0 投票
5 回答
2941 浏览

android - 将额外的或在 ArrayList 中的自定义 Parcelable 对象传递给 RemoteViewsService 会破坏 appwidget

基本上我想要做的是通过一个意图将一个自定义的可打包对象传递给 RemoteViewsService,从而传递给我的 RemoteViewsFactory。出于某种原因,这根本不起作用:S 每当我尝试这样做时,小部件最终都会显示“问题加载小部件”文本。

当我尝试相同的事情时,我没有将其传递给 RemoteViewsService,而是将其传递给常规 Activity,它完全按预期工作。

我试图在网上找到我的答案,但我没有成功,因此我现在在这里发帖希望得到帮助。

我一直试图让它在我的主程序中工作一段时间。但我就是想不通。所以我试着把它归结起来,看看我是否在某个时候做错了什么。我成功地重现了问题,我重现问题的基础来自 CommonsGuy 的 LoremWidget ( https://github.com/commonsguy/cw-advandroid/tree/master/AppWidget/LoremWidget ) 和一个随机的可打包示例 ( http ://prasanta-paul.blogspot.dk/2010/06/android-parcelable-example.htm l) 我已经修改以显示我的问题。(希望我不会遇到麻烦,在这两个链接上使用了代码)

这是上传到随机文件主机上的完整代码,以防有人想测试我在说什么: http ://www.filedropper.com/remoteviewserviceparcelerrorexample

所以总结一下我的问题:

为什么我不能将我的可打包对象(单独或包装在 ArrayList 中)传递给我的 RemoteViewsService?(当相同的代码适用于 Activity 时)

我真的希望有人能够帮助我。现在在我的主程序中我序列化到内部存储,然后几乎立即从 RemoteViewsService 再次反序列化它,从我读过的所有内容来看,这不是很有效!

编辑:刚刚记住,由于某种原因,在我的主程序中,如果我传递了一个自定义对象,其中 ArrayList 和 Strings 设置为 null,并且布尔值全部为 false(基本上正是对象在创建时的样子),则小部件看起来正常(即没有“问题加载小部件”消息)。

编辑:在查看了外观(未过滤到我正在运行的应用程序)之后,我现在看到了一些错误(我想我最好学会在没有任何文件的情况下查看所有未过滤的内容:)):

0 投票
2 回答
1215 浏览

android - 如何克隆 Parcel 对象

我想克隆一个 Parcel 对象(不可打包)。

我不能使用 clone() 方法,因为它受到保护。我也不能使用反射来调用它,因为 Parcel 类没有实现“可克隆”

我尝试执行问题的解决方案: 创建包裹对象的副本, 但它不适用于包裹类型本身 - 原因是没有为包裹类型本身定义“writeToParcel”。所以对于对象'Parcel a',a.writeToParcel(parcel, 0) 不会编译。