美文网首页
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