第一步:写入FlyBanner布局
<com.recker.flybanner.FlyBanner
android:id="@+id/FlyBanner"
android:layout_width="300dp"
android:layout_height="169dp"
android:layout_gravity="center"
>
</com.recker.flybanner.FlyBanner>
第二步:mvp的契约类
public interface BannerContract {
/**
* p
*/
public abstract class BannerPresenter{
public abstract void Banner(HashMap<String,String> params);
}
/**
* m
*/
public interface BnannerModel{
void Success(HashMap<String,String> params, BannerModel.ModelCallBack modelCallBack);
}
/**
* v
*/
public interface BannerView{
void Success(List<BannerBean.ResultBean> resultBean);
void FailUre(String msg);
}
}
第三步:model层
@Override
public void Success(HashMap<String, String> params, final ModelCallBack modelCallBack) {
OkHttpUtils.getmInstance().Get(ApiUrl.GOOD_BANNER, params, new OkhttpCallBack() {
@Override
public void FailUre(String msg) {
if(modelCallBack != null){
modelCallBack.FailUre(msg);
}
}
@Override
public void Success(String result) {
if(modelCallBack != null){
modelCallBack.Success(result);
}
}
});
}
public interface ModelCallBack{
void Success(String result);
void FailUre(String msg);
}
第四步:p层
private BannerModel bannerModel;
private BannerContract.BannerView bannerView;
public BannerPresenter(BannerContract.BannerView bannerView) {
this.bannerModel = new BannerModel();
this.bannerView = bannerView;
}
@Override
public void Banner(HashMap<String, String> params) {
bannerModel.Success(params, new BannerModel.ModelCallBack() {
@Override
public void Success(String result) {
BannerBean bannerBean = new Gson().fromJson(result, BannerBean.class);
List<BannerBean.ResultBean> resultBean = bannerBean.getResult();
bannerView.Success(resultBean);
}
@Override
public void FailUre(String msg) {
if(bannerModel != null){
bannerView.FailUre(msg);
}
}
});
}
第五步:activity的view层
//资源id
FlyBanner = view.findViewById(R.id.FlyBanner);
bannerPresenter = new BannerPresenter(this);//轮播图
//轮播图
if(bannerPresenter != null){
bannerPresenter.Banner(new HashMap<String, String>());
}
/**
* 轮播图执行成功
* @param resultBean
*/
@Override
public void Success(List<BannerBean.ResultBean> resultBean) {
icon = new ArrayList<>();
for(int i = 0;i < resultBean.size();i++){
icon.add(resultBean.get(i).getImageUrl());
}
FlyBanner.setImagesUrl(icon);
}