==============================添加依赖=================================
compile 'com.squareup.okhttp3:okhttp:3.9.0' compile 'com.squareup.okhttp3:logging-interceptor:3.9.0' compile 'com.squareup.okio:okio:1.5.0' compile 'com.android.support:recyclerview-v7:24.2.1' compile 'com.github.bumptech.glide:glide:4.0.0' compile 'com.google.code.gson:gson:2.8.2' ======================contract=============================package com.exbawei.liteli.mvpokhttp.contract; import com.exbawei.liteli.mvpokhttp.bean.Bean; import java.util.List; /** * Created by li te li on 2017/10/25. */ public class Contract { public interface Imodel{ //获取 集合的 传值 List<Bean.DataBean> getData(); } public interface Iview{ //得到接口的数据 void setData(List<Bean.DataBean> list); } public interface Ipresenter{ //显示数据 void showData(); } }
===================model===================package com.exbawei.liteli.mvpokhttp.model; import com.exbawei.liteli.mvpokhttp.bean.Bean; import com.exbawei.liteli.mvpokhttp.contract.Contract; import com.exbawei.liteli.mvpokhttp.utils.GsonObjectCallback; import com.exbawei.liteli.mvpokhttp.utils.OkHttp3Utils; import java.io.IOException; import java.util.ArrayList; import java.util.List; import okhttp3.Call; /** * Created by li te li on 2017/10/25. */ public class Model implements Contract.Imodel { String url = "http://www.yulin520.com/a2a/impressApi/news/mergeList?sign=C7548DE604BCB8A17592EFB9006F9265&pageSize=20&gender=2&ts=1871746850&page=1"; List<Bean.DataBean> list = new ArrayList<>(); @Override public List<Bean.DataBean> getData() { OkHttp3Utils.doGet(url, new GsonObjectCallback<Bean>() { @Override public void onUi(Bean bean) { list.addAll(bean.getData()); } @Override public void onFailed(Call call, IOException e) { } }); return list; } }=======================presenter============================package com.exbawei.liteli.mvpokhttp.presenter; import com.exbawei.liteli.mvpokhttp.bean.Bean; import com.exbawei.liteli.mvpokhttp.contract.Contract; import com.exbawei.liteli.mvpokhttp.model.Model; import java.util.List; /** * Created by li te li on 2017/10/25. */ public class Presenter implements Contract.Ipresenter { Contract.Iview iview; Model model; public Presenter(Contract.Iview iview) { this.iview = iview; model=new Model(); } @Override public void showData() { List<Bean.DataBean> data = model.getData(); iview.setData(data); } }
====================View============package com.exbawei.liteli.mvpokhttp; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import com.exbawei.liteli.mvpokhttp.bean.Bean; import com.exbawei.liteli.mvpokhttp.contract.Contract; import com.exbawei.liteli.mvpokhttp.presenter.Presenter; import java.util.List; public class MainActivity extends AppCompatActivity implements Contract.Iview{ Presenter presenter = new Presenter(this); private RecyclerView rv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); rv = (RecyclerView) findViewById(R.id.rv); RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(this); rv.setLayoutManager(layoutManager); presenter.showData(); } @Override public void setData(List<Bean.DataBean> list) { Myadapter myadapter = new Myadapter(list,MainActivity.this); rv.setAdapter(myadapter); } }==========================adapter=================package com.exbawei.liteli.mvpokhttp; import android.content.Context; import android.support.v7.widget.RecyclerView; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; import com.bumptech.glide.Glide; import com.exbawei.liteli.mvpokhttp.bean.Bean; import java.util.ArrayList; import java.util.List; /** * Created by li te li on 2017/10/25. */ public class Myadapter extends RecyclerView.Adapter<Myadapter.ViewHolder> { List<Bean.DataBean>list = new ArrayList<>(); Context context; public Myadapter(List<Bean.DataBean> list, Context context) { this.list = list; this.context = context; } @Override public Myadapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view =View.inflate(context,R.layout.item,null); ViewHolder viewHolder=new ViewHolder(view); return viewHolder; } @Override public void onBindViewHolder(Myadapter.ViewHolder holder, int position) { holder.tv.setText(list.get(position).getIntroduction()); Glide.with(context).load(list.get(position).getImg()).into(holder.iv); } @Override public int getItemCount() { return list.size(); } public class ViewHolder extends RecyclerView.ViewHolder { ImageView iv; TextView tv; public ViewHolder(View itemView) { super(itemView); iv= (ImageView) itemView.findViewById(R.id.iv); tv= (TextView) itemView.findViewById(R.id.tv); } } }