mvp okhttp3,网络请求
2017-10-25 13:20
99 查看
==============================添加依赖=================================
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. 4000 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); } } }
相关文章推荐
- MVP模式的OKhttp请求网络数据,xrecyclerview上拉刷新,下拉加载
- 网络请求Okhttp封装加单例加拦截器 结合MVP
- 网络请求框架 Rxjava+ReTrofit+okHttp+MVP
- MVP架构分包+OkHttp网络请求+RecyclerView展示数据
- MVP架构分包+OkHttp网络请求数据并展示到xrecyclerview上
- MVP+okhttp请求网络接口
- Okhttp3网络请求框架+MVP设计模式简单实战
- okHttp网络请求2——MVP
- MVP注册登录+OkHttp网络请求+展示数据
- MVP-简单的OkHttp网络请求数据
- Android使用OKHTTP网络框架请求数据,RecyclerView结合Glide展示图片,瀑布流布局样式
- Android OkHttp 网络请求 使用详解
- OkGo___简单易用的OkHttp网络请求封装库
- RxAndroid+OKHttp进行网络请求
- Android RxJava+Retrofit+OkHttp深入浅出-终极封装二(网络请求)
- 实战_okhttp3的网络请求步骤
- Android主流网络请求开源库的对比(Android-Async-Http、Volley、OkHttp、Retrofit)
- Android技术选型:你该选择哪个网络请求开源库(Volley、OkHttp、Retrofit)?
- Android okHttp网络请求之Get/Post请求
- Android使用Retrofit+OkHttp实现网络请求