1.调用
android源码---ListView的notifyDataSetChanged()源码
2.在BaseAdapter中很明显发现是订阅者模式
android源码---ListView的notifyDataSetChanged()源码
在这里创建了被观察者者对象
android源码---ListView的notifyDataSetChanged()源码
3.具体的被观察者类,当有变化的时候就通过notifyChanged()方法通知注册的观察者。
android源码---ListView的notifyDataSetChanged()源码
4.抽象的被观察者类.这里完全是正规的观察者模式的写法,包含了观察者的注册,解注册。并且里面也是利用了ArrayList进行观察者的存储。
android源码---ListView的notifyDataSetChanged()源码
android源码---ListView的notifyDataSetChanged()源码
5.在BaseAdapter中进行暴露观察者的注册和解注册的方法。
android源码---ListView的notifyDataSetChanged()源码
并且在ListView中setAdapter()中真正的进行调用
android源码---ListView的notifyDataSetChanged()源码
6.抽象的观察者类
android源码---ListView的notifyDataSetChanged()源码
具体的观察者类,当发起通知的时候,就会调用观察者的onChanged()方法,调用ViewGroup中的requestLayout()重新进行布局。
android源码---ListView的notifyDataSetChanged()源码

相关文章:

  • 2022-12-23
  • 2022-01-12
  • 2021-07-27
  • 2022-12-23
  • 2021-11-18
  • 2022-12-23
猜你喜欢
  • 2021-05-14
  • 2021-07-13
  • 2022-03-04
  • 2021-07-29
  • 2022-01-12
  • 2022-02-10
  • 2021-11-22
相关资源
相似解决方案