仿京东首页+商品详情页+购物车

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();

        //分类九
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值