RecyclerView依赖:
compile 'com.android.support:recyclerview-v7:25.0.1'
compile 'com.squareup.okhttp3:okhttp:3.8.1'
compile 'com.google.code.gson:gson:2.8.1'
单利类OkHttpUtilsGENT请求:
package com.example.lenovo.rollviewpagetdemo;
import android.app.DownloadManager;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.OkHttpClient;
import okhttp3.Request;
/**
* Created by Lenovo on 2017/8/11.
*/
public class OkHttpUtils {
private static OkHttpUtils utils;
private OkHttpClient client;
private OkHttpUtils(){
client = new OkHttpClient.Builder().build();
}
public static synchronized OkHttpUtils getInstance(){
if (utils == null)
utils = new OkHttpUtils();
return utils;
}
public void sendGet(String url , Callback callback){
Request request = new Request.Builder().url(url).build();
Call call = client.newCall(request);
call.enqueue(callback);
}
}
main方法:
private void initAdapter() {
GridLayoutManager manager = new GridLayoutManager(this, 1);
mrecylerView.setLayoutManager(manager);
adapter = new MyAdapter(MainActivity.this, sss);
mrecylerView.setAdapter(adapter);
}
private void initData() {
OkHttpUtils.getInstance().sendGet("http://172.16.39.36:8080/db.json", new Callback() {
@Override
public void onFailure(Call call, IOException e) {
Log.e("TAG", e.toString());
}
@Override
public void onResponse(Call call, Response response) throws IOException {
string = response.body().string();
Gson gson = new Gson();
Bean bean = gson.fromJson(string, Bean.class);
data = bean.getData();
sss.addAll(data);
runOnUiThread(new Runnable() {
@Override
public void run() {
adapter.notifyDataSetChanged();
}
});
}
});
}
RecyclerView的Adapter
package com.example.lenovo.rollviewpagetdemo;
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import java.util.List;
public class MyAdapter extends RecyclerView.Adapter{
private Context context;
private List
public MyAdapter(Context context, Listdata) {
this.context = context;
this.data = data;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View inflate = LayoutInflater.from(context).inflate(R.layout.item, parent, false);
ViewHolder viewHolder = new ViewHolder(inflate);
return viewHolder;
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
ViewHolder vh =holder;
vh.mname.setText(data.get(position).getName());
vh.mage.setText(data.get(position).getAge()+"");
vh.mgender.setText(data.get(position).getGender());
}
@Override
public int getItemCount() {
return data.size();
}
public static class ViewHolder extends RecyclerView.ViewHolder {
public View rootView;
public TextView mname;
public TextView mage;
public TextView mgender;
public ViewHolder(View rootView) {
super(rootView);
this.rootView = rootView;
this.mname = (TextView) rootView.findViewById(R.id.mname);
this.mage = (TextView) rootView.findViewById(R.id.mage);
this.mgender = (TextView) rootView.findViewById(R.id.mgender);
}
}
}