原因:
1.list对象的地址值发生了改变,与adapter绑定的list对象的地址值不一样
校验方法:System.identityHashCode(mList),比较list.add()前后的内存地址是否一致
还有就是adapter里的传参 ,千万不要用for循环来添加adapter里的list(这个坑我真的是踩烂了)
mList = list;//(传参)
2.是否在子线程操作刷新
校验方法:看是否有new Thread() 或者 Looper.getMainLooper() == Looper.myLooper()
如果是在子线程的话,就用消息处理机制来操作刷新
以上是notifyDataSetChanged()无效的原因,要么是地址值不同,要么就在子线程。