安卓开发首页代码惠

代码

package com.bawei.zailianzhoukao2.adapter;

import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;

import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;

import com.bawei.zailianzhoukao2.R;
import com.bawei.zailianzhoukao2.entiey.HomeEntity;
import com.bumptech.glide.Glide;
import com.bumptech.glide.Priority;

import java.util.List;

public class MlssAdapter extends RecyclerView.Adapter<MlssAdapter.MyViewHorlder> {


    private Context context;

    private List<HomeEntity.ResultBean.MlssBean.CommodityListBeanXX> list;

    public MlssAdapter(Context context, List<HomeEntity.ResultBean.MlssBean.CommodityListBeanXX> list) {
        this.context = context;
        this.list = list;
    }

    @NonNull
    @Override
    public MyViewHorlder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {

        View inflate = View.inflate(context, R.layout.mlss_item_layout, null);

        MyViewHorlder myViewHorlder = new MyViewHorlder(inflate);

        return myViewHorlder;
    }

    @Override
    public void onBindViewHolder(@NonNull MyViewHorlder holder, int position) {
        Glide.with(context)
                .load(list.get(position).getMasterPic())
                .placeholder(R.mipmap.ic_launcher)
                .error(R.mipmap.ic_launcher)
                .priority(Priority.HIGH)
                .circleCrop()
                .into(holder.iv);

        holder.name.setText(list.get(position).getCommodityName());
        holder.price.setText(list.get(position).getPrice()+"");
    }

    @Override
    public int getItemCount() {
        return list.size();
    }


    class MyViewHorlder extends RecyclerView.ViewHolder {

        private  TextView name;
        private  TextView price;
        private  ImageView iv;

        public MyViewHorlder(@NonNull View itemView) {
            super(itemView);

            iv = itemView.findViewById(R.id.iv);
            name = itemView.findViewById(R.id.name);
            price = itemView.findViewById(R.id.price);
        }
    }




}











package com.bawei.zailianzhoukao2.app;

import android.app.Application;
import android.content.Context;

public class App extends Application {

    private static Context context;

    @Override
    public void onCreate() {
        super.onCreate();

        context=getApplicationContext();
    }

    public static Context getContext() {
        return context;
    }
}













package com.bawei.zailianzhoukao2.base;

import java.lang.ref.WeakReference;

public abstract class BasePresenter<M extends IBaseModel,V extends IBaseView>{
    public M model;
    public WeakReference<V> weakReference;


    public BasePresenter(){
        model=initModel();
    }

    public void attchView(V v){
        weakReference=new WeakReference<>(v);
    }

    protected abstract M initModel();

    public void detach(){
        if (weakReference!=null){
            weakReference.clear();
            weakReference=null;
        }
    }


    public V getView(){
        return weakReference.get();
    }


}






package com.bawei.zailianzhoukao2.base;
public interface IBaseModel {

}








package com.bawei.zailianzhoukao2.base;

public interface IBaseView {
    void showLoading();
    void hideLoading();
}








package com.bawei.zailianzhoukao2.contract;

import com.bawei.zailianzhoukao2.base.IBaseModel;
import com.bawei.zailianzhoukao2.base.IBaseView;

public interface IHomeContract {

    interface IModel extends IBaseModel {
        void getHome(ModelCallback modelCallback);
        void getBanner(ModelCallback modelCallback);
        interface ModelCallback{
            void success(Object data);
            void error(Throwable throwable);
        }
    }

    interface IView extends IBaseView {
        void success(Object data);
        void error(Throwable throwable);
    }

    interface IPresenter{
        void getHome();
        void getBanner();
    }
}





package com.bawei.zailianzhoukao2.entiey;

import com.bawei.zailianzhoukao2.api.Api;
import com.bawei.zailianzhoukao2.contract.IHomeContract;
import com.bawei.zailianzhoukao2.utils.VolleyUtils;
import com.google.gson.Gson;

public class HomeModel implements IHomeContract.IModel {
    @Override
    public void getHome(final ModelCallback modelCallback) {
        VolleyUtils.getInstance().doGet(Api.HOME_URL, new VolleyUtils.VelloyCallBack() {
            @Override
            public void success(String response) {
//                if (modelCallback != null) {
                HomeEntity homeEntity = new Gson().fromJson(response, HomeEntity.class);

                modelCallback.success(homeEntity);

//                }
            }

            @Override
            public void error(Throwable throwable) {
                if (modelCallback != null) {
                modelCallback.error(throwable);

                }

            }
        });
    }

    @Override
    public void getBanner(final ModelCallback modelCallback) {

        VolleyUtils.getInstance().doGet(Api.BANNER_URL, new VolleyUtils.VelloyCallBack() {
            @Override
            public void success(String response) {
                BannerEntity bannerEntity = new Gson().fromJson(response, BannerEntity.class);

                modelCallback.success(bannerEntity);
            }

            @Override
            public void error(Throwable throwable) {
                modelCallback.error(throwable);
            }
        });

    }
}













package com.bawei.zailianzhoukao2.presenter;

import com.bawei.zailianzhoukao2.base.BasePresenter;
import com.bawei.zailianzhoukao2.contract.IHomeContract;
import com.bawei.zailianzhoukao2.entiey.HomeModel;

public class HomePresenter extends BasePresenter<HomeModel, IHomeContract.IView> implements IHomeContract.IPresenter {
    @Override
    protected HomeModel initModel() {
        return new HomeModel();
    }

    @Override
    public void getHome() {
        model.getHome(new IHomeContract.IModel.ModelCallback() {
            @Override
            public void success(Object data) {
                getView().success(data);
            }

            @Override
            public void error(Throwable throwable) {
                getView().error(throwable);
            }
        });
    }

    @Override
    public void getBanner() {
        model.getBanner(new IHomeContract.IModel.ModelCallback() {
            @Override
            public void success(Object data) {
                getView().success(data);
            }

            @Override
            public void error(Throwable throwable) {
                getView().error(throwable);
            }
        });
    }
}







package com.bawei.zailianzhoukao2.utils;

import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;
import com.bawei.zailianzhoukao2.app.App;

public class VolleyUtils {


    private RequestQueue requestQueue;
    private static VolleyUtils volleyUtils;

    public static VolleyUtils getInstance() {
        if (volleyUtils==null){
            synchronized ((VolleyUtils.class)){
                if (volleyUtils==null){
                     volleyUtils=new VolleyUtils();
                }
            }
        }
        return volleyUtils;
    }

    private VolleyUtils(){
        requestQueue= Volley.newRequestQueue(App.getContext());
    }


    public void doGet(String url, final VelloyCallBack velloyCallBack){

        StringRequest stringRequest = new StringRequest(StringRequest.Method.GET, url, new Response.Listener<String>() {
            @Override
            public void onResponse(String response) {
                if (velloyCallBack!=null){
                    velloyCallBack.success(response);
                }
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                if (velloyCallBack!=null){
                    velloyCallBack.error(error);
                }
            }
        });

        requestQueue.add(stringRequest);
    }

    public interface VelloyCallBack{
        void success(String response);
        void error(Throwable throwable);
    }
}








package com.bawei.zailianzhoukao2.utils;

import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;

import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import android.widget.Toast;

import com.bawei.zailianzhoukao2.R;
import com.bawei.zailianzhoukao2.adapter.MlssAdapter;
import com.bawei.zailianzhoukao2.adapter.PzshAdapter;
import com.bawei.zailianzhoukao2.adapter.RxxpAdapter;
import com.bawei.zailianzhoukao2.base.BaseActivity;
import com.bawei.zailianzhoukao2.contract.IHomeContract;
import com.bawei.zailianzhoukao2.entiey.BannerEntity;
import com.bawei.zailianzhoukao2.entiey.HomeEntity;
import com.bawei.zailianzhoukao2.presenter.HomePresenter;
import com.bumptech.glide.Glide;
import com.stx.xhb.androidx.XBanner;

import java.util.List;

public class MainActivity extends BaseActivity<HomePresenter> implements IHomeContract.IView {

    private XBanner xb;
    private RecyclerView rxxp;
    private RecyclerView pzsh;
    private RecyclerView mlss;

    @Override
    protected HomePresenter initPresenter() {
        return new HomePresenter();
    }

    @Override
    protected void initData() {

        presenter.getHome();
        presenter.getBanner();
    }

    @Override
    protected void initView() {
        xb = findViewById(R.id.xb);
        rxxp = findViewById(R.id.rxxp);
        pzsh = findViewById(R.id.pzsh);
        mlss = findViewById(R.id.mlss);


        rxxp.setLayoutManager(new LinearLayoutManager(this,RecyclerView.HORIZONTAL,false));
        mlss.setLayoutManager(new LinearLayoutManager(this));

        pzsh.setLayoutManager(new GridLayoutManager(this,2));

    }

    @Override
    protected int bindLayouyId() {
        return R.layout.activity_main;
    }

    @Override
    public void success(Object data) {
        if (data!=null){

            if (data instanceof HomeEntity){

                Toast.makeText(this,"456" , Toast.LENGTH_SHORT).show();


                RxxpAdapter rxxpAdapter = new RxxpAdapter(this, ((HomeEntity) data).getResult().getRxxp().getCommodityList());
                rxxp.setAdapter(rxxpAdapter);

                MlssAdapter mlssAdapter = new MlssAdapter(this, ((HomeEntity) data).getResult().getMlss().getCommodityList());
                mlss.setAdapter(mlssAdapter);

                PzshAdapter pzshAdapter = new PzshAdapter(this, ((HomeEntity) data).getResult().getPzsh().getCommodityList());
                pzsh.setAdapter(pzshAdapter);
            }else if (data instanceof BannerEntity){

                final List<BannerEntity.Banner> result = ((BannerEntity) data).result;

                xb.setBannerData(result);

                xb.loadImage(new XBanner.XBannerAdapter() {
                    @Override
                    public void loadBanner(XBanner banner, Object model, View view, int position) {
                        Glide.with(MainActivity.this).load(result.get(position).imageUrl).into((ImageView) view);
                    }
                });

            }
        }
    }

    @Override
    public void error(Throwable throwable) {
        Toast.makeText(this, "网络错误", Toast.LENGTH_SHORT).show();
    }

    @Override
    public void showLoading() {

    }

    @Override
    public void hideLoading() {

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值