3

状態を保存するカスタム ビューを作成しようとしています。回転しようとすると、onSaveInstanceState が呼び出されましたが、writeToParcel は呼び出されませんでした。

これは onSaveInstanceState です:

@Override
public Parcelable onSaveInstanceState()
{
    Logger.d("On Save Instance State");

    Parcelable superState = super.onSaveInstanceState();

    PictureItemState pis = new PictureItemState(superState);

    for (PictureItem item : mImageList)
    {
        if (!item.isButton)
        {
            pis.mUriList.add(item.uri.toString());
            pis.mIndexList.add(item.index);
        }
    }

    return pis;
}

そして、これは writeToParcel を実装する状態クラスです:

static class PictureItemState extends BaseSavedState
{
...    
@Override
    public void writeToParcel(Parcel dest, int flags)
    {
        super.writeToParcel(dest, flags);

        Logger.d("Write to parcel");

        int size = mUriList.size();

        dest.writeInt(size);

        for (int i = 0; i < size; i++)
        {
            dest.writeString(mUriList.get(i));
            dest.writeInt(mIndexList.get(i));
        }
    }
...
}
4

0 に答える 0