banner+Recyclerview+Gson+okhtto请求网络数据+解析
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.rv);
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);
}
}
}
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇:没有了
- 下一篇:没有了
