首页面

一,HomeApi

public interface HomeApi {
    //首页api
    @GET(ConstantApi.HOME_URL)
    Observable<HomeBean> home();

}

二,HomeModel

public class HomeModel {
    //轮播图,秒杀,推荐
    public Observable<HomeBean> home(){
        return RetrofitManager.getDefault().creat(HomeApi.class).home();
    }
}

三,HomePresenter

public class HomePresenter extends BasePresenter<HomeView> {

    private HomeModel homeModel;

    public HomePresenter(HomeView view) {
        super(view);
    }

    public void homePresenter(){
        homeModel.home()
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Observer<HomeBean>() {
                    @Override
                    public void onSubscribe(Disposable d) {
                        compositeDisposable.clear();
                    }

                    @Override
                    public void onNext(HomeBean homeBean) {
                        if("0".equals(homeBean.getCode())){
                            if(view!=null){
                                view.getSueecss(homeBean);
                            }else{
                                if(view!=null){
                                    view.getError("请求失败");
                                }
                            }
                        }
                    }

                    @Override
                    public void onError(Throwable e) {
                           if(view!=null){
                               view.getError(e.toString());
                           }
                    }

                    @Override
                    public void onComplete() {

                    }
                });
    }

    @Override
    protected void initModel() {
        homeModel = new HomeModel();
    }
}

 

四,HomeFragment

public class Fragment_Home extends BaseActivity<HomePresenter> implements HomeView {
    private static final String TAG = "Fragment_Home====";
    private List<String> images = new ArrayList<>();
    private List<String> titles = new ArrayList<>();
    private RecyclerView recyclerView_fenlei,recyclerView_miaosha,recyclerView_tuijian;
    private XBanner xBanner;
    private MyMiaoShaAdapter myMiaoShaAdapter;

    @Override
    protected void initListener() {

    }

    @Override
    protected void initview(View view) {
        xBanner = view.findViewById(R.id.home_banner);
        recyclerView_fenlei= view.findViewById(R.id.home_gridview);
        recyclerView_miaosha=view.findViewById(R.id.home_miaosha);
        recyclerView_tuijian=view.findViewById(R.id.home_tuijian);
    }

    @Override
    protected int setView() {
        return R.layout.home_fragment;
    }

    @Override
    protected void initData() {
        presenter.homePresenter();
    }

    @Override
    protected HomePresenter presenterById() {
        return new HomePresenter(this);
    }

    @Override
    public void getSueecss(HomeBean homeBean) {
        Log.d(TAG, "首页轮播图成功: "+homeBean);
        List<HomeBean.DataBean.BannerBean> banner = homeBean.getData().getBanner();
        images.clear();
        titles.clear();
        for (int i = 0; i <banner.size() ; i++) {
            String icon = banner.get(i).getIcon();
            String title = banner.get(i).getTitle();

            images.add(icon);
            titles.add(title);
        }
        //为XBanner绑定数据
        xBanner.setData(R.layout.home_xbanner,images,titles);
        //加载广告图片
        xBanner.loadImage(new XBanner.XBannerAdapter() {
            @Override
            public void loadBanner(XBanner banner, Object model, View view, int position) {


                SimpleDraweeView viewById = view.findViewById(R.id.my_image_view);
                String s = images.get(position);
                String[] split = s.split("\\|");
                viewById.setImageURI(split[0]);
            }

        });


        //京东秒杀
        List<HomeBean.DataBean.MiaoshaBean.ListBean> miaosha = homeBean.getData().getMiaosha().getList();
        //创建适配器
        myMiaoShaAdapter = new MyMiaoShaAdapter(miaosha,getActivity());
        GridLayoutManager gridLayoutManager=new GridLayoutManager(getContext(),1);
        gridLayoutManager.setOrientation(GridLayoutManager.HORIZONTAL);
        recyclerView_miaosha.setAdapter(myMiaoShaAdapter);
        recyclerView_miaosha.setLayoutManager(gridLayoutManager);



        //分类
        List<HomeBean.DataBean.FenleiBean> fenlei = homeBean.getData().getFenlei();
        //创建适配器
        MyFenLeiAdapter myFenLeiAdapter=new MyFenLeiAdapter(getContext(),fenlei);
        GridLayoutManager gridLayoutManager_fenlei=new GridLayoutManager(getContext(),2);
        gridLayoutManager_fenlei.setOrientation(GridLayoutManager.HORIZONTAL);
        recyclerView_fenlei.setAdapter(myFenLeiAdapter);
        recyclerView_fenlei.setLayoutManager(gridLayoutManager_fenlei);



        //为你推荐
        final List<HomeBean.DataBean.TuijianBean.ListBeanX> tuijian = homeBean.getData().getTuijian().getList();
        //创建适配器
        MyTuiJianAdapter myTuiJianAdapter=new MyTuiJianAdapter(getContext(),tuijian);
        GridLayoutManager gridLayoutManager_tuijian=new GridLayoutManager(getContext(),2);
        gridLayoutManager_tuijian.setOrientation(LinearLayoutManager.VERTICAL);
        recyclerView_tuijian.setAdapter(myTuiJianAdapter);
        recyclerView_tuijian.setLayoutManager(gridLayoutManager_tuijian);



        //点击商品跳转到商品详情页面
         myTuiJianAdapter.setOnItemClickListener(new MyTuiJianAdapter.OnItemClickListener() {
             @Override
             public void OnItemClick(int position) {
                 Intent it=new Intent(getContext(), XiangQing_Activity.class);
                 int pid = tuijian.get(position).getPid();
                 it.putExtra("pid",pid+"");
                 startActivity(it);
             }
         });
    }

    @Override
    public void getError(String e) {
        Log.d(TAG, "首页轮播图失败: "+e);
    }
}

五,HomeAdapter

(1)mytuijian_adapter

public class MyTuiJianAdapter extends RecyclerView.Adapter<MyTuiJianAdapter.MyViewHolder> {
    private Context context;
    private List<HomeBean.DataBean.TuijianBean.ListBeanX> list;


    public MyTuiJianAdapter(Context context, List<HomeBean.DataBean.TuijianBean.ListBeanX> list) {
        this.context = context;
        this.list = list;
    }

    @NonNull
    @Override
    public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(context).inflate(R.layout.home_tuijian_adapter, parent, false);
        MyViewHolder myViewHolder=new MyViewHolder(view);
        return myViewHolder;
    }

    @Override
    public void onBindViewHolder(@NonNull MyViewHolder holder, final int position) {
          holder.tv_title.setText(list.get(position).getTitle());
          holder.tv_price.setText("¥"+list.get(position).getPrice());

        String[] split = list.get(position).getImages().split("\\|");
        holder.simpleDraweeView.setImageURI(Uri.parse(split[0]));

        holder.simpleDraweeView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                onItemClickListener.OnItemClick(position);
            }
        });
    }

    @Override
    public int getItemCount() {
        return list==null ?0:list.size();
    }

    public class MyViewHolder extends RecyclerView.ViewHolder {
        private SimpleDraweeView simpleDraweeView;
        private TextView tv_title,tv_price;
        public MyViewHolder(View itemView) {
            super(itemView);
            simpleDraweeView=itemView.findViewById(R.id.home_tuijian_simple_adapter);
            tv_title=itemView.findViewById(R.id.home_tuijian_tv_title_adapter);
            tv_price=itemView.findViewById(R.id.home_tuijian_tv_price_adapter);
        }
    }

   private OnItemClickListener onItemClickListener;


    public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
        this.onItemClickListener = onItemClickListener;
    }

    //为条目添加监听事件
    public interface OnItemClickListener{
        void OnItemClick(int position);
    }
}

(2)mymiaosha_adapter

public class MyMiaoShaAdapter extends RecyclerView.Adapter<MyMiaoShaAdapter.MyViewHolder> {
    private List<HomeBean.DataBean.MiaoshaBean.ListBean> list;
    private Context context;


    public MyMiaoShaAdapter(List<HomeBean.DataBean.MiaoshaBean.ListBean> list, Context context) {
        this.list = list;
        this.context = context;
    }

    @NonNull
    @Override
    public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(context).inflate(R.layout.home_miaosha_adapter, parent, false);
        MyViewHolder myViewHolder=new MyViewHolder(view);
        return myViewHolder;
    }

    @Override
    public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
        String images = list.get(position).getImages();
        String[] split = images.split("\\|");

        holder.simpleDraweeView.setImageURI( Uri.parse(split[0]));
    }

    @Override
    public int getItemCount() {
        return list==null? 0:list.size();
    }

    public class MyViewHolder extends RecyclerView.ViewHolder {

        private SimpleDraweeView simpleDraweeView;
        public MyViewHolder(View itemView) {
            super(itemView);
            simpleDraweeView=itemView.findViewById(R.id.home_miaosha_adapter);
        }
    }
}

(3)myfenlei_adapter

public class MyFenLeiAdapter extends RecyclerView.Adapter<MyFenLeiAdapter.MyViewHolder> {
    private Context context;
    private List<HomeBean.DataBean.FenleiBean> list;


    public MyFenLeiAdapter(Context context, List<HomeBean.DataBean.FenleiBean> list) {
        this.context = context;
        this.list = list;
    }

    @NonNull
    @Override
    public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(context).inflate(R.layout.home_fenlei_adapter, parent, false);
        MyViewHolder myViewHolder=new MyViewHolder(view);
        return myViewHolder;
    }

    @Override
    public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
        holder.textView.setText(list.get(position).getName());

        String[] split = list.get(position).getIcon().split("\\|");
        holder.simpleDraweeView.setImageURI(Uri.parse(split[0]));
    }

    @Override
    public int getItemCount() {
        return list==null? 0:list.size();
    }

    public class MyViewHolder extends RecyclerView.ViewHolder {
        private SimpleDraweeView simpleDraweeView;
        private TextView textView;
        public MyViewHolder(View itemView) {
            super(itemView);
            simpleDraweeView=itemView.findViewById(R.id.home_fenlei_adapter);
            textView=itemView.findViewById(R.id.home_fenlei_tv_adapter);
        }
    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值