Android 之View界面的存储与恢复的异常

最近写了一个自定义布局View,遇见了一个bug,记录自己踩的坑。
下面请大家看一下我的代码,View的存储与恢复部分代码,如下:

//这是保存数据代码
protected Parcelable onSaveInstanceState() {

        Bundle bd = new Bundle();
        bd.putParcelable(INSTANCE, super.onSaveInstanceState());  
        //存储一下状态  ,是否结束
        bd.putBoolean(INSTANCE_GAMEOVER, isGameOver);
        //存储一下   数组信息
        bd.putParcelableArrayList(INSTANCE_WHITEARRAY, mWhiteArray);    
        bd.putParcelableArrayList(INSTANCE_BLACKARRAY, mBlackArray);   
        return bd;
    }

下面是重启动当前View时,进行数据获取

protected void onRestoreInstanceState(Parcelable state) {

        if (state instanceof Bundle) {

            Bundle bd = (Bundle) state;
            //获取  状态
            isGameOver = bd.getBoolean(INSTANCE_GAMEOVER);
            //获取 数组
            mBlackArray = bd.getParcelableArrayList(INSTANCE_BLACKARRAY);
            mWhiteArray = bd.getParcelableArrayList(INSTANCE_WHITEARRAY);       super.onRestoreInstanceState(bd.getParcelable(INSTANCE));
            return;
        } 
        super.onRestoreInstanceState(state);
    }

上面的这些主要代码都没有问题,但是我进行运行测试的时候,却发现这些代码竟然没有发挥作用,还是没有保存状态和获取数据信息。
这时你会觉得是不是代码写错了,怎么界面还不行,。这个时候其实不是代码问题了,是你的View布局文件没有设置ID。

这里写图片描述

必须设置ID,不要忘了,小伙伴们。
好了,今天的采坑记录就到这里!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值