课堂笔记
- 老师在创建接口时,把接口里每个方法的作用(创建的原因),讲的都很详细,所以直接上代码吧
- presenter 接口
public interface ICategoryPagerPresent {
//根据分类id去获取内容
void getContentByCategoryId(int categoryId);
//根据分类id加载更多
void loadMore(int categoryId);
//重新加载
void reload();
}
public interface ICategoryPagerCallback {
//加载分类内容
void onContentLoaded(List<HomePagerContent.DataBean > contents);
//加载中
void onLoading(int categoryId);
//加载出错
void onError(int categoryId);
//数据为空
void onEmpty(int categoryId);
//加载更多网络错误
void onLoadMoreError(int categoryId);
//没有更多内容了
void onLoadMoreEmpty(int categoryId);
//加载到了更多内容
void onLoadMoreLoaded(List<HomePagerContent.DataBean > contents);
//加载轮播图
void onLooperListLoaded(List<HomePagerContent.DataBean > contents);
}
- 最后老师把 view 接口里可以公用的方法抽出来放在 IBaseCallback
public interface IBaseCallback {
//获取分类失败
void onNetworkError();
//分类加载中
void onLoading();
//获取分类为空
void onEmpty();
}
- presenter 接口里可以公用的方法抽出来放在 IBasePresenter,用泛型定义参数类型
public interface IBasePresenter<T> {
//注册接口
void registerViewCallback(T callback);
//取消注册接口
void unregisterViewCallback(T callback);
public interface IHomePresenter extends IBasePresenter<IHomeCallback> {
//获取商品分类
void getCategories();
}
public interface ICategoryPagerPresent extends IBasePresenter<ICategoryPagerCallback> {
//根据分类id去获取内容
void getContentByCategoryId(int categoryId);
//根据分类id加载更多
void loadMore(int categoryId);
//重新加载
void reload();
}
- 创建 CategoryPagerPresenterImpl 实现接口 ICategoryPagerPresent
public class CategoryPagerPresenterImpl implements ICategoryPagerPresent {
@Override
public void getContentByCategoryId(int categoryId) {
}
@Override
public void loadMore(int categoryId) {
}
@Override
public void reload() {
}
@Override
public void registerViewCallback(ICategoryPagerCallback callback) {
}
@Override
public void unregisterViewCallback(ICategoryPagerCallback callback) {
}
}