【Android】网络请求展示条目使用 RecycleView + okhttp

MainActivity

 private ListViewAdapter mAdapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
        
        RecyclerView lv = findViewById(R.id.list);

        GridView grid = findViewById(R.id.grid);
       // GridLayoutManager recyclerViewLayoutManager = new GridLayoutManager(this, 3);
        //grid.setAdapter(mAdapter);


        mAdapter = new ListViewAdapter(this);
        lv.setAdapter(mAdapter);
        lv.setLayoutManager(new LinearLayoutManager(Main2Activity.this,LinearLayout.VERTICAL,false));


        String url="http://www.xieast.com/api/news/news.php?page=1";
        HttpUtil httpUtil = new HttpUtil(this);
        httpUtil.HttpUtils(url);

        ImageView sao = findViewById(R.id.sao);
        sao.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(Main2Activity.this, Main3Activity.class);
                startActivityForResult(intent,5);
            }
        });

    }
    @Override
    public void util(String work) {
        Gson gson = new Gson();
        final Response json = gson.fromJson(work, Response.class);
        runOnUiThread(new Runnable() {
            @Override
            public void run() {
                mAdapter.setData(json.getData());
            }
        });
    }

Adapter

public class ListViewAdapter extends RecyclerView.Adapter<ListViewAdapter.ViewHolder> {

    private Context mContext;
    ArrayList<Bean> mList;
    private ViewHolder mHolder;

    public ListViewAdapter(Context context) {

        mContext = context;
        mList = new ArrayList<>();
    }
    public void setData(ArrayList<Bean> json) {
        this.mList.clear();
        if(json!=null){
            this.mList.addAll(json);
        }
        notifyDataSetChanged();
    }

    public static class ViewHolder extends RecyclerView.ViewHolder {
         ImageView icon;
        TextView title;
        public ViewHolder(View itemView) {
            super(itemView);
            icon =itemView.findViewById(R.id.icon);
            title =itemView.findViewById(R.id.title);
        }
    }
    @Override
    public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
        View view = View.inflate(mContext, R.layout.item_list,null);
         mHolder = new ViewHolder(view);
         return mHolder;
    }
    @Override
    public void onBindViewHolder(ViewHolder viewHolder, int i) {
            viewHolder.title.setText(mList.get(i).getDate());
        ImageLoader.getInstance().displayImage(mList.get(i).getThumbnail_pic_s(),viewHolder.icon);
    }
    @Override
    public int getItemCount() {
        return mList.size();
    }

}

HttpUtil

public class HttpUtil {
    // String url="http://www.xieast.com/api/news/news.php?page=1";
    public void  HttpUtils(String s) {

        OkHttpClient okHttpClient = new OkHttpClient().newBuilder().build();
        Request request = new Request.Builder().url(s).get().build();
        Call call = okHttpClient.newCall(request);
        call.enqueue(new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {

            }
            @Override
            public void onResponse(Call call, Response response) throws IOException {

                String work = response.body().string();

                mHttpUtilInterface.util(work);
            }
        });
    }
    public interface HttpUtilInterface{
        void util(String work);
    }
    private HttpUtilInterface mHttpUtilInterface;

    public HttpUtil(Main2Activity httpUtilInterface) {
        mHttpUtilInterface = httpUtilInterface;
    }
}

Listview GridView 瀑布流

 @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.add:
                //点击条目
              adapter.setData(0,R.mipmap.ic_launcher);
              //定位
              rv.smoothScrollToPosition(0);
                break;
            case R.id.delete:
                adapter.removeData(0);
                break;
            case R.id.list:

                LinearLayoutManager ListManager = new LinearLayoutManager(this);
                rv.setLayoutManager(ListManager);
                break;
            case R.id.grid:

                GridLayoutManager gridManager = new GridLayoutManager(this, 3);
                rv.setLayoutManager(gridManager);
                break;
            case R.id.flow:
                StaggeredGridLayoutManager flowManager =
                        new StaggeredGridLayoutManager(4, StaggeredGridLayoutManager.VERTICAL);
                flowManager.setOrientation(LinearLayoutManager.VERTICAL);
                rv.setLayoutManager(flowManager);
                break;
        }
    }
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值