OKHTTP-RecyclerView-九宫格

需要导入build.gradle中的依赖

implementation 'com.google.code.gson:gson:2.8.5'
implementation 'com.android.support:design:27.1.1'
compile 'cn.yipianfengye.android:zxing-library:1.9'
compile 'com.squareup.okhttp3:okhttp:3.9.0'

AndroidManifest.xml文件中加网络权限

## 创建布局文件actvity.main中

<android.support.v7.widget.RecyclerView
android:id="@+id/rv_jgg"
android:layout_width=“match_parent”
android:layout_height=“200dp”/>

继续创建一个适配器的布局文件,也就是九宫格的图片布局



接下来创建一个九宫格的类

网址:http://www.zhaoapi.cn/product/getCatagory

import java.util.List;

public class Jgg {

/**
 * msg :
 * code : 0
 * data : [{"cid":1,"createtime":"2017-10-10T19:41:39","icon":"http://120.27.23.105/images/category/shop.png","ishome":1,"name":"京东超市"},{"cid":2,"createtime":"2017-10-10T19:41:39","icon":"http://120.27.23.105/images/category/qqg.png","ishome":1,"name":"全球购"},{"cid":3,"createtime":"2017-10-10T19:45:11","icon":"http://120.27.23.105/images/category/phone.png","ishome":1,"name":"手机数码"},{"cid":5,"createtime":"2017-10-10T20:12:03","icon":"http://120.27.23.105/images/category/man.png","ishome":1,"name":"男装"},{"cid":6,"createtime":"2017-10-10T20:12:03","icon":"http://120.27.23.105/images/category/girl.png","ishome":1,"name":"女装"},{"cid":7,"createtime":"2017-10-10T20:12:03","icon":"http://120.27.23.105/images/category/manshoe.png","ishome":1,"name":"男鞋"},{"cid":8,"createtime":"2017-10-10T20:12:03","icon":"http://120.27.23.105/images/category/girlshoe.png","ishome":1,"name":"女鞋"},{"cid":9,"createtime":"2017-10-10T20:12:03","icon":"http://120.27.23.105/images/category/shirt.png","ishome":1,"name":"内衣配饰"},{"cid":10,"createtime":"2017-10-10T20:12:03","icon":"http://120.27.23.105/images/category/bag.png","ishome":1,"name":"箱包手袋"},{"cid":11,"createtime":"2017-10-10T20:12:03","icon":"http://120.27.23.105/images/category/beauty.png","ishome":1,"name":"美妆个护"},{"cid":12,"createtime":"2017-10-10T20:12:03","icon":"http://120.27.23.105/images/category/jewel.png","ishome":1,"name":"钟表珠宝"},{"cid":13,"createtime":"2017-10-10T20:12:03","icon":"http://120.27.23.105/images/category/luxury.png","ishome":1,"name":"奢侈品"},{"cid":14,"createtime":"2017-10-10T20:12:03","icon":"http://120.27.23.105/images/category/computer.png","ishome":1,"name":"电脑办公"},{"cid":15,"createtime":"2017-09-29T10:13:48","icon":"http://120.27.23.105/images/icon.png","ishome":0,"name":"家用电器"},{"cid":16,"createtime":"2017-09-29T10:13:48","icon":"http://120.27.23.105/images/icon.png","ishome":0,"name":"食品生鲜"},{"cid":17,"createtime":"2017-09-29T10:13:48","icon":"http://120.27.23.105/images/icon.png","ishome":0,"name":"酒水饮料"},{"cid":18,"createtime":"2017-09-29T10:13:48","icon":"http://120.27.23.105/images/icon.png","ishome":0,"name":"母婴童装"},{"cid":19,"createtime":"2017-09-29T10:13:48","icon":"http://120.27.23.105/images/icon.png","ishome":0,"name":"玩具乐器"},{"cid":20,"createtime":"2017-09-29T10:13:48","icon":"http://120.27.23.105/images/icon.png","ishome":0,"name":"医药保健"}]
 */

private String msg;
private String code;
private List<DataBean> data;

public String getMsg() {
    return msg;
}

public void setMsg(String msg) {
    this.msg = msg;
}

public String getCode() {
    return code;
}

public void setCode(String code) {
    this.code = code;
}

public List<DataBean> getData() {
    return data;
}

public void setData(List<DataBean> data) {
    this.data = data;
}

public static class DataBean {
    /**
     * cid : 1
     * createtime : 2017-10-10T19:41:39
     * icon : http://120.27.23.105/images/category/shop.png
     * ishome : 1
     * name : 京东超市
     */

    private int cid;
    private String createtime;
    private String icon;
    private int ishome;
    private String name;

    public int getCid() {
        return cid;
    }

    public void setCid(int cid) {
        this.cid = cid;
    }

    public String getCreatetime() {
        return createtime;
    }

    public void setCreatetime(String createtime) {
        this.createtime = createtime;
    }

    public String getIcon() {
        return icon;
    }

    public void setIcon(String icon) {
        this.icon = icon;
    }

    public int getIshome() {
        return ishome;
    }

    public void setIshome(int ishome) {
        this.ishome = ishome;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

}

创建适配器

import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;

import com.nostra13.universalimageloader.core.ImageLoader;

import java.util.ArrayList;
import java.util.List;

public class JggAdapter extends RecyclerView.Adapter<JggAdapter.ViewHolder> {
private Context context;
private List<Jgg.DataBean> list;

public JggAdapter(Context context) {
    this.context = context;
    list = new ArrayList<>();
}
public void setData(ArrayList<Jgg.DataBean> dataBeans){
    for (int i = 0; i < dataBeans.size(); i++) {
        list.add(dataBeans.get(i));
    }
    notifyDataSetChanged();
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
    View view = View.inflate(context, R.layout.rv_jgg, null);
    ViewHolder holder = new ViewHolder(view);
    return holder;
}

@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
    ImageLoader.getInstance().displayImage(list.get(position).getIcon(),holder.img);
}

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

public class ViewHolder extends RecyclerView.ViewHolder {
    private final ImageView img;

    public ViewHolder(View itemView) {
        super(itemView);
       img = itemView.findViewById(R.id.img);

    }
}

}

接下来就是MainActvity中实现效果了

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.Toast;
import com.google.gson.Gson;
import com.uuzuche.lib_zxing.activity.CaptureActivity;
import com.uuzuche.lib_zxing.activity.CodeUtils;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;

public class ShowActivity extends Activity {
public static final String imgs=“http://www.zhaoapi.cn/product/getCatagory”;
private RecyclerView rvJgg;
private List<Jgg.DataBean> jgg;
private JggAdapter jggAdapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_show);
    //初始化控件
    initView();
    jgg = new ArrayList<>();
    jggAdapter = new JggAdapter(this);
    rvJgg.setAdapter(jggAdapter);

    GridLayoutManager manager1 = new GridLayoutManager(this,4);//这里是网格布局实现九宫格,第一个参数是上下文,第二个是九宫格图片的列数
    rvJgg.setLayoutManager(manager1);
    initData();
}



private void initData() {
    OkHttpClient okHttpClient = new OkHttpClient();
    Request request = new Request.Builder().url(imgs).build();
    Call call = okHttpClient.newCall(request);
    call.enqueue(new Callback() {

        private ArrayList<Jgg.DataBean> j;

        @Override
        public void onFailure(Call call, IOException e) {

        }

        @Override
        public void onResponse(Call call, Response response) throws IOException {
            String string = response.body().string();
            Gson gson = new Gson();
            Jgg jgg = gson.fromJson(string, Jgg.class);
            j = (ArrayList<Jgg.DataBean>) jgg.getData();
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    jggAdapter.setData(j);
                }
            });
        }
    });

private void initView() {
    rvJgg = findViewById(R.id.rv_jgg);
}

}

猜你喜欢

转载自blog.csdn.net/weixin_43117800/article/details/84135189