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

banner+Recyclerview+Gson+okhtto请求网络数据+解析

2017-10-26 08:34 681 查看
banner+Recyclerview布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:weightSum="1">

<com.youth.banner.Banner
android:id="@+id/banner"
android:layout_width="match_parent"
android:layout_height="200dp"
/>
<android.support.v7.widget.RecyclerView
android:id="@+id/rv"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>

</LinearLayout>

Banner+RecyclerView主要逻辑

package fragment;

import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListView;

import com.example.samsung.shuxingdonghuademo.R;
import com.google.gson.Gson;
import com.youth.banner.Banner;

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

import Adapter.MyAdapter;
import Adapter.MyAdapter1;
import Bean.MyBean;
import ImageLoader.MyimageLoader;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;

/**
* Created by samsung on 2017/10/25.
*/

public class Fragment1 extends Fragment {
private View view;

private String s;
private Banner banner;
private MyAdapter myAdapter;
private MyAdapter1 myAdapter1;
private ListView lv;
private RecyclerView rv;
private List<MyBean.TopStoriesBean> list;
private ArrayList<String> list1;
Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);

rv.setAdapter(myAdapter);
}
};

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
view = inflater.inflate(R.layout.fragment1, container, false);

return view;
}

@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
banner = (Banner) view.findViewById(R.id.banner);
rv = (RecyclerView) view.findViewById(R.id.r
cd9e
v);
rv.setLayoutManager(new LinearLayoutManager(getActivity()));

banner.setImageLoader(new MyimageLoader());
list1 = new ArrayList<>();
list1.add("https://pic4.zhimg.com/v2-97d9c4d8c3c673b10772682e5ac0c137.jpg");
list1.add("https://pic2.zhimg.com/v2-e7582788c34b9d40b7b849ea3458d0dd.jpgs");
list1.add("https://pic1.zhimg.com/v2-e5b5e2342378517d1ddeb3f26496367c.jpg");
list1.add("https://pic3.zhimg.com/v2-3820a42752377cd7cbceff405d79e182.jpg");
list1.add("https://pic4.zhimg.com/v2-97d9c4d8c3c673b10772682e5ac0c137.jpg");
list1.add("https://pic1.zhimg.com/v2-035ee11f84858c12173d1004d49b5d88.jpg");
list1.add("https://pic2.zhimg.com/v2-36c115eaf6a006719f71a94cd2993f59.jpg");
list1.add("https://pic3.zhimg.com/v2-c98d605967a61c53abd811e683e62dde.jpg");
list1.add("https://pic3.zhimg.com/v2-ed8af5cd65b6bca6c9b4966b05e1b72a.jpg");
banner.setImages(list1);
banner.start();
//qingqiuwangluoshuju
initda();
}

private void initda() {
OkHttpClient ok = new OkHttpClient();
Request request = new Request.Builder().url("http://news-at.zhihu.com/api/4/news/latest").build();
Call call = ok.newCall(request);
call.enqueue(new Callback() {

@Override
public void onFailure(Call call, IOException e) {
System.out.println("请求失败");
}

@Override
public void onResponse(Call call, Response response) throws IOException {
s = response.body().string();
System.out.println("请求成功"+s);

Gson gspn = new Gson();
MyBean mybean = gspn.fromJson(s, MyBean.class);
list = mybean.getTop_stories();
handler.sendEmptyMessage(1);
myAdapter = new MyAdapter(getActivity(),list);

}
});

}

}


Recyclerview适配器

package Adapter;

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.example.samsung.shuxingdonghuademo.R;
import com.squareup.picasso.Picasso;

import java.util.List;

import Bean.MyBean;

/**
* Created by samsung on 2017/10/25.
*/

public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder>{
private Context context;
private  List<MyBean.TopStoriesBean>  list;

public MyAdapter(Context context, List<MyBean.TopStoriesBean> list) {
this.context=context;
this.list=list;
}

@Override
public 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(ViewHolder holder, int position) {

holder.textView1.setText(list.get(position).getTitle());
holder.textView2.setText(list.get(position).getGa_prefix());

Picasso.with(context).load(list.get(position).getImage()).into(holder.imageView);
}

@Override
public int getItemCount() {
return list==null?0:list.size();
}

public  class  ViewHolder extends  RecyclerView.ViewHolder {

private final ImageView imageView;
private final TextView textView1;
private final TextView textView2;

public ViewHolder(View itemView) {
super(itemView);
imageView = (ImageView) itemView.findViewById(R.id.img);
textView1 = (TextView) itemView.findViewById(R.id.tv1);
textView2 = (TextView) itemView.findViewById(R.id.tv2);

}
}

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