美文网首页
android java.lang.IllegalArgumen

android java.lang.IllegalArgumen

作者: 一粒渣 | 来源:发表于2017-03-14 20:57 被阅读0次

    在进行动态改变界面布局,同界面下动态切换布局时。我会在每次addView()之前执行removeAllViews(),可是在4.0+系统下会抛出android java.lang.IllegalArgumentException: The observer is null异常;原因是因为在上一次addView()添加的View里所包含的Adapter的observer在onDetachedFromWindow()时已经被设置为null;所以导致remove时抛出该异常;具体可以查看4.0和2.3的源码onDetachedFromWindow方法源码。

    解决办法是重写adapter 的 unregisterDataSetObserver(DataSetObserver observer):
    @Override
    public void unregisterDataSetObserver(DataSetObserver observer) {
    if (observer != null) {
    super.unregisterDataSetObserver(observer);
    }
    }

    此处记录以免忘记!

    相关文章

      网友评论

          本文标题:android java.lang.IllegalArgumen

          本文链接:https://www.haomeiwen.com/subject/iiqknttx.html