android java.lang.IllegalArgumentException: The observer is null.异常解决

在进行动态改变界面布局,同界面下动态切换布局时。我会在每次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.IllegalArgumentException: The observer is null.异常解决)