banner+Recyclerview+Gson+okhtto请求网络数据+解析
2017-10-26 08:34
681 查看
banner+Recyclerview布局
Banner+RecyclerView主要逻辑
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); } } }
相关文章推荐
- 在Android Studio上使用GSON+VOLLEY,秒处理网络数据成集合。感受框架的力量。搭配RecyclerView和SwipeRefreshLayout,实现底端加载更多,下拉刷新。
- MVP模式的OKhttp请求网络数据,xrecyclerview上拉刷新,下拉加载
- MVP实现用Retrofit请求网络数据Fresco加载图片,Recyclerview CheckBox显示并实现全选删除
- 调用OKhttp封装类请求网络数据适配到Recyclerview上拉下拉刷新
- Retrofit网络请求+Recyclerview展示数据+Fresco显示图片
- MVP+Retrofit+RxJava请求网络数据实现RecyclerView多条目展示
- RecyclerView条目跳转+SpringView数据刷新加载+MVP+OKhttp+拦截器+自定义view 实现请求网络数据的二级列表购物车
- MVP架构分包+OkHttp网络请求数据并展示到xrecyclerview上
- RecyclerView和okhttp结合 实现一个网络请求数据
- MVP框架+RXJava+reftorfit请求网络数据+XRecycleView多条目展示(banner轮播+条目展示、刷新加载)、点击事件+fresco图片加载
- 关于listview中图片切圆,网络请求数据,并Gson解析后得到list
- 网络请求数据添加到列表(okhttp+RecyclerView)
- Android---------通过OkHttp网络请求利用RecyclerView展示数据
- XRecyclerview mvpgson网络解析
- Retrofit网络请求+Recyclerview展示数据+Fresco显示图片
- 使用HttpURLConnection请求Gson网络解析数据
- 用RecyclerView请求网络数据
- RecyclerView获取网络数据并解析显示的过程
- RecyclerView多条目加载(网络请求数据)
- MVP架构分包+OkHttp网络请求+RecyclerView展示数据