有了以上两篇文章的重构,现在把ListView分组列表重构为自定义控件就会非常简单,只需要把初始化操作放在自定义控件的构造函数里面。重构后的自定义控件以上一篇的注解重构为基础。
基本结构
这里首先贴上一张上篇文章重构后的activity的代码结构,相关的方法实现在之前两篇文章中都有贴出。
再贴一张重构后的View的结构。可见两者的结构都及其相似。不同的是上边的activity中有抽象方法getDataList(),而下边的没有,但是多了一个ILoadRulerData<T> iLoadData 类型的接口。用于加载数据。
且自定义View中把activity 中initdata()方法改为loaddata(),以供主动调用后开始加载数据。
重构后基本代码如下,省略了一部分和之前重复的代码:
首先是数据加载接口: