IHomeApi:
package com.example.yuekaomoni.mvp.view.iview;
import com.example.yuekaomoni.mvp.model.bean.Home;
import io.reactivex.Observable;
import retrofit2.http.GET;
import retrofit2.http.Url;
/**
* Created by DELL on 2018/7/26.
*/
public interface IHomeApi {
@GET()
Observable<Home> home(@Url String url);
}
首页的Model —— HomeModel:
package com.example.yuekaomoni.mvp.model;
import com.example.yuekaomoni.mvp.model.bean.Home;
import com.example.yuekaomoni.mvp.view.iview.IHomeApi;
import com.example.yuekaomoni.utils.RetrofitManager;
import io.reactivex.Observable;
/**
* Created by DELL on 2018/7/26.
*/
public class HomeModel {
public Observable<Home> home(String url) {
return RetrofitManager.getDefault().create(IHomeApi.class).home("https://www.zhaoapi.cn/home/getHome");
}
}
首页的Presenter —— HomePresenter:
package com.example.yuekaomoni.mvp.presenter;
import com.example.yuekaomoni.mvp.model.HomeModel;
import com.example.yuekaomoni.mvp.model.bean.Home;
import com.example.yuekaomoni.mvp.view.iview.IHomeView;
import io.reactivex.Observable;
import io.reactivex.Observer;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.Disposable;
import io.reactivex.schedulers.Schedulers;
/**
* Created by DELL on 2018/7/26.
*/
public class HomePresenter {
private HomeModel homeModel;
IHomeView mIHomeView;
public HomePresenter(IHomeView iHomeView){
mIHomeView = iHomeView;
homeModel = new HomeModel();
}
public void home(){
homeModel.home("https://www.zhaoapi.cn/home/getHome")
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<Home>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(Home home) {
if(mIHomeView != null){
mIHomeView.onResponse(home);
}
}
@Override
public void onError(Throwable e) {
if(mIHomeView != null){
mIHomeView.onFailure(e.toString());
}
}
@Override
public void onComplete() {
}
});
}
}
MainActivity:
package com.example.yuekaomoni.mvp.view.activity;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.View;
import android.widget.ImageView;
import android.widget.Toast;
import com.example.yuekaomoni.DetailActivity;
import com.example.yuekaomoni.R;
import com.example.yuekaomoni.adapter.FenleiAdapter;
import com.example.yuekaomoni.adapter.MiaoshaAdapter;
import com.example.yuekaomoni.adapter.TuijianAdapter;
import com.example.yuekaomoni.mvp.model.bean.Home;
import com.example.yuekaomoni.mvp.presenter.HomePresenter;
import com.example.yuekaomoni.mvp.view.iview.IHomeView;
import com.facebook.drawee.view.SimpleDraweeView;
import com.youth.banner.BannerConfig;
import com.youth.banner.loader.ImageLoader;
import com.youth.banner.loader.ImageLoaderInterface;
import java.util.ArrayList;
import java.util.List;
import butterknife.BindView;
import butterknife.ButterKnife;
public class MainActivity extends AppCompatActivity implements IHomeView {
@BindView(R.id.banner)
com.youth.banner.Banner banner;
@BindView(R.id.fenlei_rv)
RecyclerView fenleiRv;
@BindView(R.id.miaosha_rv)
RecyclerView miaoshaRv;
@BindView(R.id.tuijian_rv)
RecyclerView tuijianRv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
HomePresenter homePresenter = new HomePresenter(this);
homePresenter.home();
//分类九宫格
GridLayoutManager gridLayoutManager = new GridLayoutManager(MainActivity.this, 2);
gridLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
fenleiRv.setLayoutManager(gridLayoutManager);
//京东秒杀
miaoshaRv.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false));
//为你推荐
GridLayoutManager gridLayoutManager1 = new GridLayoutManager(MainActivity.this, 2);
gridLayoutManager1.setOrientation(LinearLayoutManager.VERTICAL);
tuijianRv.setLayoutManager(gridLayoutManager1);
}
@Override
public void onResponse(Home home) {
Home.DataBean data = home.getData();
//轮播图
List<Home.DataBean.BannerBean> dataBanner = data.getBanner();
List<String> list = new ArrayList<>();
List<String> title_list = new ArrayList<>();
for (int i = 0; i < dataBanner.size(); i++) {
String icon = dataBanner.get(i).getIcon();
String title = dataBanner.get(i).getTitle();
list.add(icon);
title_list.add(title);
}
banner.setBannerStyle(BannerConfig.CIRCLE_INDICATOR_TITLE_INSIDE);
banner.setImageLoader(new GlideImageLoader());
banner.setImages(list);
banner.setBannerTitles(title_list);
banner.start();
//分类九