Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何阅读包裹_Java_Android_Parcelable - Fatal编程技术网

Java 如何阅读包裹

Java 如何阅读包裹,java,android,parcelable,Java,Android,Parcelable,我原以为我懂得如何读/写包裹,但现在我被卡住了。在我的一个可包裹对象中,我有这个功能 @Override public void writeToParcel(Parcel dest, int flags) { dest.writeInt(7); int testInt = dest.readInt(); Log.d("test","INT = " + testInt); } 在保存活动状态时正确运行。这个输出 INT = 0 我认为这是因为我没有正确地写/读包裹。或者

我原以为我懂得如何读/写包裹,但现在我被卡住了。在我的一个可包裹对象中,我有这个功能

@Override
public void writeToParcel(Parcel dest, int flags) {
    dest.writeInt(7);
    int testInt = dest.readInt();
    Log.d("test","INT = " + testInt);
}
在保存活动状态时正确运行。这个输出

INT = 0

我认为这是因为我没有正确地写/读包裹。或者你不被允许立即写和读。我做错了什么?

您应该使用writeToParcel方法写入包裹,并使用创建者的createFromParcel方法读取包裹


我不知道为什么要用writeToParcel方法读取包裹,但如果这样做,就不应该首先读取最近写入的int;数据的读取顺序与写入顺序相同。

在您写入7之前,是否有其他代码将int 0写入包裹?不,这是全部代码。我假设我得到了0,因为这是intYeah的默认值,我知道在writeToParcel函数中读写是完全无用的。我只是想测试我是否理解它是如何工作的。但我得到0的事实似乎很奇怪。我在createFromParcel函数中尝试时也得到了0。所以我的问题仍然不是answered@Bob在这种情况下,您需要向我们展示一个完整的可运行示例。如果不完整地查看方法以及有关何时以及如何向包裹写入对象和从包裹读取对象的信息,就很难回答这个问题。