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

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

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

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

谢谢

0 投票
2 回答
1591 浏览

java - android中意图中对象的浅拷贝

我有一些对象想通过意图传递给其他活动。但是,它们只需要是另一个对象的浅拷贝,因为它们只会被读取(即使它们要被修改,我也希望它们在原始活动中被修改),所以没有意义使对象可序列化,也因为并非对象中的所有字段都是可序列化的,我什至做不到。

此外,似乎使其可打包会遇到同样的问题。当然,似乎我可以在其中添加一些字段作为活动对象,但我不能让整个事情只是一个浅拷贝。

那么有什么方法可以在意图中制作对象的浅表副本,或者以任何其他方式将数据的浅表副本传递给另一个活动,就像您通常在 java 中传递参数一样?谢谢你。

0 投票
0 回答
991 浏览

android - Parcel vs. Serializeable 用于在服务/活动之间交换对象

让我首先给你一个全貌:我正在开发一个基于位置的应用程序,它在多个活动和服务之间调用对象的不断重新创建和交换。创建正在交换的对象所需的数据存储在 SQLite 数据库中,然后通过从远程 SQL 数据库中检索数据来填充该数据库。

很快很明显,将对象的原始属性传递给活动/服务(通过意图)是一个巨大的编码开销,减少了应用程序可能拥有的每个扩展前景。所以,很快我决定扩展我的主要对象类来实现一个Parcelable类,如下所示:

尽管我检查了包裹字段的每个数据条目,但仍然出现以下异常:

出于这个原因,我考虑 MyProduct.class 实现serializable,希望它会变成一个更容错的结构。在上述情况下,这种交替的利弊是什么?

0 投票
1 回答
27923 浏览

android - 将对象作为下一个活动的意图

是否可以将 Object 类型的对象作为 Extra 放入意图中?我有一个对象类型的变量,直到它被分配一个关于对象数据类型的值时才知道。也许与序列化或作为捆绑包有关,我不确定?然后在下一个活动中,我如何获取这个值以便将它存储在一个ArrayList<Object>

0 投票
2 回答
310 浏览

java - 无法使用包裹发送未知数据类型的对象

前几天我问了一个关于使用意图作为包裹将对象发送到活动的问题,但我不确定在我的情况下如何做到这一点。我有一个对象类型的变量,Object x;它是这样设置的:x = edit.getText().toString();在这种情况下,x 变成了一个 String 对象,但我也让它能够将 x 设置为 Integer 和 SQLDate 类型。查看如何将对象作为包裹发送的示例,在我看来,即使对于自定义数据类型,您也必须事先知道数据类型是什么。对此的任何帮助将不胜感激,因为我完全坚持这一点。

流程是:

Object x;- 被建造。

x = String object||Integer object||sqldate object- x 被赋值

i.putExtra("object", x);- x 被打包后被发送到下一个活动。

0 投票
2 回答
27055 浏览

java - 可打包对象中的数组列表

到目前为止,我已经看到了许多可打包的示例,但由于某种原因,当它变得更复杂时,我无法让它工作。我有一个实现 Parcelable 的 Movie 对象。这本书对象包含一些属性,例如 ArrayLists。执行 ReadTypedList 时运行我的应用程序会导致 NullPointerException !我真的没有想法

复习课:

如果有人能让我走上正确的轨道,我将不胜感激,我花了很多时间寻找这个!

提前感谢韦斯利

0 投票
1 回答
242 浏览

android - Android DroidCharts SaveInstanceState 问题?

我使用 JFreeChart ( http://www.jfree.org/jfreechart/ ) 作为图表库。但对于 Android,我使用 DroidCharts ( http://code.google.com/p/droidcharts/ ),它基本上是适用于 Android 的 JFreechart。我在android上创建了一个图表。最初很清楚,然后我可以添加一些值来绘制并绘制在图表上。

当我将我的 android 方向从纵向旋转到横向时,由于 android 生命周期,屏幕再次为空白(它继续销毁并再次调用 onCreate)。

我需要知道如何使用“onSaveInstanceState”保存我的绘图点,以便在更改方向时在“onRestoreInstanceState”上再次创建。? 任何代码片段都会有所帮助。谢谢

0 投票
3 回答
12345 浏览

java - Android:永远不会调用 Parcelable.writeToParcel 和 Parcelable.Creator.createFromParcel

我对在这里发布问题完全陌生,但是多年来我一直在这里阅读很多内容。通常我总是能够通过彻底搜索网络找到我的答案,但这次我不知所措......

在花了一天的时间试图弄清楚为什么这不起作用之后,我决定寻求帮助,希望你们能给我一些建议,或者更好的解决方案。

问题:在Android游戏中,当用户按下主屏幕按钮时,我必须让应用程序记住它的状态。经过一些搜索后,我意识到为了让我的类在重新打开应用程序后初始化回适当的状态,我必须支持 Parcelable 接口才能通过 Bundle 传递它们。

在我的 onStop 和 onStart 函数中,我分别在 Bundle 中保存和恢复游戏状态,但是当我在 Bundle 上调用 putParcelable 和 getParcelable 函数时,永远不会调用对象的 writeToParcel 和 createFromParcel 函数。

担心这可能是由于游戏的相对复杂性,我想我最好创建一个非常简单的应用程序来尝试让它工作。

基于我在网上看到的许多 Parcelable 示例,这成为了我的课程:

从我的主要活动中,我将调用以下函数来保存/恢复数据:

但是由于某种原因,这两个函数(使用 putParcelable 和 getParcelable 函数)都不会在我的测试类中导致适当的 Parcelable 调用。

最奇怪的是它确实以某种方式读取了正确的值(我已经尝试过在类中使用更多变量),但是我的调试和日志显示应用程序永远不会去 writeToParcel 和 createFromParcel。

我在这里想念什么?

任何帮助/想法将不胜感激。

0 投票
1 回答
3980 浏览

java - Parcelable 遇到ClassNotFoundException 读取一个Serializable 对象

我已经实现了一个实现 Serializable 对象的类。

但是,每当我尝试在 Bundle 中使用它时,都会出现以下异常:

我究竟做错了什么?

编辑

嗯...使用 Parcelable 时的类似问题:

0 投票
1 回答
1119 浏览

android - 如何使用 Parcelable 和 onClickListeners?

我一直在阅读 Parcelables,我读得越多,我就越感到困惑。

我想要的是以下

  1. 连接到外部 API 以获取 JSON 数据(当前工作)。
  2. 我将 JSON 对象很好地解析为放在 HashMap 中的字符串。我正在使用 ListView 显示可滚动的数据(当前工作)
  3. 我已经设置了一个 onClickListener 来设置一个新的意图(目前正在工作)
  4. 这就是我感到困惑的地方 - 我的目标是允许用户单击 Listview 中的一个项目,这会将他们带到一个新屏幕,其中包含有关他们单击的项目的更多详细信息。

第 4 点的问题:

  1. 我是否使用 Parcelable 类将 JSON 对象传递到意图中?就我而言,这是最好的选择吗?
  2. 如果 Parcelable 是正确的选择,我会创建一个实现 Parcelables 的新类,以便传入 JSON 对象吗?我想我真的不确定如何进行。我见过的所有示例都只有一些字符串传递给 writeToParcel() 方法。不确定这如何转化为具有多个属性的对象。

感谢您花时间阅读。