相关疑难解决方法(0)

如何在Android中使用Parcel?

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

public void testFoo() {
    final Foo orig = new Foo("blah blah");

    // Wrote orig to a parcel and then byte array
    final Parcel p1 = Parcel.obtain();
    p1.writeValue(orig);
    final byte[] bytes = p1.marshall();


    // Check to make sure that the byte array seems to contain a Parcelable
    assertEquals(4, bytes[0]); // Parcel.VAL_PARCELABLE


    // Unmarshall a Foo from that byte array
    final Parcel p2 = Parcel.obtain();
    p2.unmarshall(bytes, 0, bytes.length);
    final Foo result = (Foo) p2.readValue(Foo.class.getClassLoader());


    assertNotNull(result); …
Run Code Online (Sandbox Code Playgroud)

android parcel

55
推荐指数
4
解决办法
8万
查看次数

通过bundle检索parcelable对象是否始终创建新副本?

我通过在创建片段时添加到一个包中将一个parcelable对象传递给一个片段.在onc实例中,对此parceled对象的修改反映了原始对象的修改,而在另一种情况下则不是.我对这种行为感到有点困惑.直到现在我已经假设通过一个包检索一个包围的对象总是创建一个新对象[不确定它是浅拷贝还是深拷贝].

有人请澄清可怜行为.

android parcelable android-fragments android-bundle

12
推荐指数
1
解决办法
1354
查看次数