您的位置:首页 > 理论基础 > 计算机网络

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);
}
}
}

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: