MVP 上拉下拉 Banner轮播

一点MainActivity

public class MainActivity extends AppCompatActivity implements ContarInterFace.MyViewActivity,XRecyclerView.LoadingListener{

    XRecyclerView recycler;
    ContarInterFace.PresenterInterFace presenterInterFace;
    List<ProBean.ResultBean> list = new ArrayList<> ();
    MyAdapter myAdapter;
    Banner banner;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate (savedInstanceState);
        setContentView (R.layout.activity_main);
        presenterInterFace =new Presenter(this);
        banner = findViewById (R.id.banner);
        init();
    }

    public void init() {
        recycler = findViewById (R.id.recyvler);
        recycler.setLoadingListener (this);
        recycler.setLoadingMoreEnabled (true);
        recycler.setPullRefreshEnabled (true);
        LinearLayoutManager layoutManager = new LinearLayoutManager(this);
        layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
        recycler.setLayoutManager(layoutManager);

        myAdapter = new MyAdapter (list,this);
        recycler.setAdapter (myAdapter);
        presenterInterFace.toRequest (1);
        ArrayList<String> ccc = new ArrayList<> ();
        ccc.add ("http://172.17.8.100/images/small/commodity/nx/swxxx/1/1.jpg");
        ccc.add ("http://172.17.8.100/images/small/commodity/nx/swxxx/1/2.jpg");
        ccc.add ("http://172.17.8.100/images/small/commodity/nx/swxxx/1/3.jpg");
        banner.setImageLoader (new ImageLoader () {
            @Override
            public void displayImage(Context context, Object path, ImageView imageView) {
                Glide.with (context).load (path).into (imageView);
            }
        }).setImages (ccc).isAutoPlay (true).setDelayTime (3000).start ();

    }
    @Override
    public void toShow(Object o) {
        recycler.refreshComplete ();
        recycler.loadMoreComplete ();
        List<ProBean.ResultBean> mlist = (List<ProBean.ResultBean>) o;
       list.addAll (mlist);
       myAdapter.notifyDataSetChanged ();

    }

    @Override
    public void onRefresh() {
        list.clear ();
        presenterInterFace.toRequest (1);
    }
    int page=1;
    @Override
    public void onLoadMore() {
        page +=1;
        presenterInterFace.toRequest (page);
    }
}

二 接口集合

public interface ContarInterFace {
    //View层
    public interface MyViewActivity{
        public void toShow(Object o);
    }
    //P层
    public interface PresenterInterFace{
       public void toRequest( int page);
    }
}

三 P层

  public class Presenter<T> implements ContarInterFace.PresenterInterFace {
    
        T tt;
        MyModel myModel;    
        public Presenter(T t){
            myModel =new MyModel ();
            tt =t;
        }
        @Override
        public void toRequest(int page) {
            String url ="http://172.17.8.100/small/commodity/v1/findCommodityByKeyword";
             myModel.setMyCallBack (new MyModel.MyCallBack () {
                 @Override
                 public void success(Object o) {    
                     ContarInterFace.MyViewActivity myViewActivity= (ContarInterFace.MyViewActivity) tt;
                     myViewActivity.toShow (o);
                 }
             });
            Map<String,String> map = new HashMap<> ();
            map.put ("keyword","高");
            map.put("page" , page + "");
            map.put("count" , "10");
            myModel.getRequest (url,map);
        }
    
    }

四 。Model

public class MyModel {

    MyCallBack myCallBack;
    OkHttpUtile utile;


    Handler mhandler = new Handler (){
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage (msg);
            int type = msg.arg1;
            Log.e("ttt","过了");
            if(type==1){
                String json = (String) msg.obj;
                Gson gson = new Gson ();
                ProBean proBean = gson.fromJson (json, ProBean.class);
                List<ProBean.ResultBean> result = proBean.getResult ();
                myCallBack.success (result);
            }
        }
    };

    public void getRequest(String url, Map<String,String> map){

        utile = OkHttpUtile.getInstance();

        utile.doGet (url, map, new Callback () {
            @Override
            public void onFailure(Call call, IOException e) {

            }

            @Override
            public void onResponse(Call call, Response response) throws IOException {
                String json = response.body ().string ();
                Message message = new Message ();
                message.arg1=1;
                message.obj=json;
                mhandler.sendMessage (message);
            }
        });
    }
    public void setMyCallBack(MyCallBack back){
        myCallBack =back;
    }

    public interface MyCallBack{
        public void success(Object o);
    }
}

五。Http

public class OkHttpUtile {

    public static OkHttpUtile utile;
    OkHttpClient okHttpClient;
    private OkHttpUtile(){
        okHttpClient =new OkHttpClient.Builder().addInterceptor (new Interceptor () {
            @Override
            public Response intercept(Chain chain) throws IOException {
                Request request = chain.request ();
                Log.e ("tag",request+"");
                Response response = chain.proceed (request);
                return response;
            }
        }).build ();
    }

    public static synchronized OkHttpUtile getInstance(){
        if(utile == null){
            utile = new OkHttpUtile ();
        }
        return utile;
    }

    public void doGet(String url,Map<String,String>map,Callback callback){
         if(map!=null &map.size ()>0){
             StringBuilder builder = new StringBuilder ();
             for (String key:map.keySet ()){
                 String value = map.get (key);
                 builder.append (key)
                         .append ("=")
                         .append (value)
                         .append ("&");
             }
             String str = builder.toString ();
             int index = str.lastIndexOf ("&");
             str = str.substring (0, index);
             url = url +"?"+ str;
         }
        Request request = new Request.Builder ()
                .url (url)
                .get ()
                .build ();
        Call call = okHttpClient.newCall (request);
        call.enqueue (callback);
    }

六。 Adapter

public class MyAdapter extends RecyclerView.Adapter {
    List<ProBean.ResultBean> list;
    Context mCont;
    int type=1;
    public MyAdapter(List<ProBean.ResultBean> list, MainActivity mainActivity) {
        this.list = list;
    }

    @NonNull
    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
        mCont = viewGroup.getContext ();
        if(type==1){
            View view = LayoutInflater.from (viewGroup.getContext ()).inflate (R.layout.activity_item, null);
            return new Holde_1(view);
        }else{
            View view = LayoutInflater.from (viewGroup.getContext ()).inflate (R.layout.activity_ite, null);
            return new Holde_2(view);
        }
    }

    @Override
    public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, int i) {
          if(type == 1){
              ((Holde_1)viewHolder).text1.setText (list.get (i).getCommodityName ());
              Glide.with (mCont).load (list.get (i).getMasterPic ()).into (((Holde_1)viewHolder).image1);
          }else{
              ((Holde_2)viewHolder).text2.setText (list.get (i).getCommodityName ());
              Glide.with (mCont).load (list.get (i).getMasterPic ()).into (((Holde_2)viewHolder).image2);
          }
    }

    @Override
    public int getItemViewType(int position) {
              type=position%2;
        return type;
    }

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

    public class Holde_1 extends RecyclerView.ViewHolder{
         TextView text1;
         ImageView image1;
        public Holde_1(@NonNull View itemView) {
            super (itemView);
             text1 = itemView.findViewById (R.id.text1);
             image1 = itemView.findViewById (R.id.image1);
        }
    }
    public class Holde_2 extends RecyclerView.ViewHolder{
        TextView text2;
        ImageView image2;
        public Holde_2(@NonNull View itemView) {
            super (itemView);
            text2 = itemView.findViewById (R.id.text2);
            image2 = itemView.findViewById (R.id.image2);
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值