问题标签 [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 - Android - 捆绑列表时使用打包还是序列化?
应该如何List<MyClass>
正确地从主要活动传递到次要活动?
据我了解,捆绑数据有两种方法:Parceling
和Serializing
. 各有什么优缺点?
谢谢
java - android中意图中对象的浅拷贝
我有一些对象想通过意图传递给其他活动。但是,它们只需要是另一个对象的浅拷贝,因为它们只会被读取(即使它们要被修改,我也希望它们在原始活动中被修改),所以没有意义使对象可序列化,也因为并非对象中的所有字段都是可序列化的,我什至做不到。
此外,似乎使其可打包会遇到同样的问题。当然,似乎我可以在其中添加一些字段作为活动对象,但我不能让整个事情只是一个浅拷贝。
那么有什么方法可以在意图中制作对象的浅表副本,或者以任何其他方式将数据的浅表副本传递给另一个活动,就像您通常在 java 中传递参数一样?谢谢你。
android - Parcel vs. Serializeable 用于在服务/活动之间交换对象
让我首先给你一个全貌:我正在开发一个基于位置的应用程序,它在多个活动和服务之间调用对象的不断重新创建和交换。创建正在交换的对象所需的数据存储在 SQLite 数据库中,然后通过从远程 SQL 数据库中检索数据来填充该数据库。
很快很明显,将对象的原始属性传递给活动/服务(通过意图)是一个巨大的编码开销,减少了应用程序可能拥有的每个扩展前景。所以,很快我决定扩展我的主要对象类来实现一个Parcelable类,如下所示:
尽管我检查了包裹字段的每个数据条目,但仍然出现以下异常:
出于这个原因,我考虑 MyProduct.class 实现serializable,希望它会变成一个更容错的结构。在上述情况下,这种交替的利弊是什么?
android - 将对象作为下一个活动的意图
是否可以将 Object 类型的对象作为 Extra 放入意图中?我有一个对象类型的变量,直到它被分配一个关于对象数据类型的值时才知道。也许与序列化或作为捆绑包有关,我不确定?然后在下一个活动中,我如何获取这个值以便将它存储在一个ArrayList<Object>
?
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 被打包后被发送到下一个活动。
java - 可打包对象中的数组列表
到目前为止,我已经看到了许多可打包的示例,但由于某种原因,当它变得更复杂时,我无法让它工作。我有一个实现 Parcelable 的 Movie 对象。这本书对象包含一些属性,例如 ArrayLists。执行 ReadTypedList 时运行我的应用程序会导致 NullPointerException !我真的没有想法
复习课:
如果有人能让我走上正确的轨道,我将不胜感激,我花了很多时间寻找这个!
提前感谢韦斯利
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”上再次创建。? 任何代码片段都会有所帮助。谢谢
java - Android:永远不会调用 Parcelable.writeToParcel 和 Parcelable.Creator.createFromParcel
我对在这里发布问题完全陌生,但是多年来我一直在这里阅读很多内容。通常我总是能够通过彻底搜索网络找到我的答案,但这次我不知所措......
在花了一天的时间试图弄清楚为什么这不起作用之后,我决定寻求帮助,希望你们能给我一些建议,或者更好的解决方案。
问题:在Android游戏中,当用户按下主屏幕按钮时,我必须让应用程序记住它的状态。经过一些搜索后,我意识到为了让我的类在重新打开应用程序后初始化回适当的状态,我必须支持 Parcelable 接口才能通过 Bundle 传递它们。
在我的 onStop 和 onStart 函数中,我分别在 Bundle 中保存和恢复游戏状态,但是当我在 Bundle 上调用 putParcelable 和 getParcelable 函数时,永远不会调用对象的 writeToParcel 和 createFromParcel 函数。
担心这可能是由于游戏的相对复杂性,我想我最好创建一个非常简单的应用程序来尝试让它工作。
基于我在网上看到的许多 Parcelable 示例,这成为了我的课程:
从我的主要活动中,我将调用以下函数来保存/恢复数据:
但是由于某种原因,这两个函数(使用 putParcelable 和 getParcelable 函数)都不会在我的测试类中导致适当的 Parcelable 调用。
最奇怪的是它确实以某种方式读取了正确的值(我已经尝试过在类中使用更多变量),但是我的调试和日志显示应用程序永远不会去 writeToParcel 和 createFromParcel。
我在这里想念什么?
任何帮助/想法将不胜感激。
java - Parcelable 遇到ClassNotFoundException 读取一个Serializable 对象
我已经实现了一个实现 Serializable 对象的类。
但是,每当我尝试在 Bundle 中使用它时,都会出现以下异常:
我究竟做错了什么?
编辑
嗯...使用 Parcelable 时的类似问题:
android - 如何使用 Parcelable 和 onClickListeners?
我一直在阅读 Parcelables,我读得越多,我就越感到困惑。
我想要的是以下
- 连接到外部 API 以获取 JSON 数据(当前工作)。
- 我将 JSON 对象很好地解析为放在 HashMap 中的字符串。我正在使用 ListView 显示可滚动的数据(当前工作)
- 我已经设置了一个 onClickListener 来设置一个新的意图(目前正在工作)
- 这就是我感到困惑的地方 - 我的目标是允许用户单击 Listview 中的一个项目,这会将他们带到一个新屏幕,其中包含有关他们单击的项目的更多详细信息。
第 4 点的问题:
- 我是否使用 Parcelable 类将 JSON 对象传递到意图中?就我而言,这是最好的选择吗?
- 如果 Parcelable 是正确的选择,我会创建一个实现 Parcelables 的新类,以便传入 JSON 对象吗?我想我真的不确定如何进行。我见过的所有示例都只有一些字符串传递给 writeToParcel() 方法。不确定这如何转化为具有多个属性的对象。
感谢您花时间阅读。