用RecyclerView请求网络数据
来源:互联网 发布:推广优化软件 编辑:程序博客网 时间:2024/06/06 04:49
我们找到一个简单的接口 用用RecyclerView请求网络数据展示出来
过程中要注意细节 导两个包 gson和Imageloder 添加网络请求权限 和 自定义application中的name
现在开始上干货吧!
======================================MianActivity===============================
package test.com.a20171008;import android.os.AsyncTask;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.support.v7.widget.LinearLayoutManager;import android.support.v7.widget.RecyclerView;import android.view.View;import android.view.ViewGroup;import android.widget.ImageView;import android.widget.TextView;import com.google.gson.Gson;import com.nostra13.universalimageloader.core.ImageLoader;import java.io.Reader;import test.com.a20171008.bran.Da;public class MainActivity extends AppCompatActivity {RecyclerView rv; Da da; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //找控件 创建数据源 rv= (RecyclerView) findViewById(R.id.rv); initRV(); } public void initRV(){ initData(); //布局管理器 LinearLayoutManager manager=new LinearLayoutManager(this); rv.setLayoutManager(manager); } public void initData(){ new AsyncTask<String,String,String>(){ @Override protected String doInBackground(String... strings) { Reader reader=NetUtils.getNet("http://result.eolinker.com/iYXEPGn4e9c6dafce6e5cdd23287d2bb136ee7e9194d3e9?uri=one"); Gson gson=new Gson(); da=gson.fromJson(reader, Da.class); return null; } @Override protected void onPostExecute(String s) { MyAdapter adapter=new MyAdapter(); rv.setAdapter(adapter); super.onPostExecute(s); } }.execute(); } public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder>{ @Override public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view=View.inflate(MainActivity.this,R.layout.one_item,null); MyViewHolder holder=new MyViewHolder(view); return holder; } @Override public void onBindViewHolder(MyViewHolder holder, int position) { holder.tv1.setText(da.getData().get(position).getTitle()); ImageLoader.getInstance().displayImage(da.getData().get(position).getImage_url(),holder.iv1); } @Override public int getItemCount() { return da==null?0:da.getData().size(); } class MyViewHolder extends RecyclerView.ViewHolder{ TextView tv1; ImageView iv1; public MyViewHolder(View itemView) { super(itemView); tv1=itemView.findViewById(R.id.tv1); iv1=itemView.findViewById(R.id.iv1); } } } }==============================NetUtils==================================================
public class NetUtils { public NetUtils() { super(); } public static Reader getNet(String path){ Reader reader=null; try { URL url=new URL(path); HttpURLConnection conn= (HttpURLConnection) url.openConnection(); conn.setRequestMethod("GET"); int code=conn.getResponseCode(); if (code==200){ InputStream is=conn.getInputStream(); reader=new InputStreamReader(is); } } catch (java.io.IOException e) { e.printStackTrace(); } return reader; }}
====================================MyApp=====================================
public class MyApp extends Application { @Override public void onCreate() { super.onCreate(); File file = this.getCacheDir(); DisplayImageOptions options = new DisplayImageOptions.Builder() .cacheInMemory(true) .cacheOnDisk(true) .build(); ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder( this) // max width, max height,即保存的每个缓存文件的最大长宽 .memoryCacheExtraOptions(480, 800) // 线程池内加载的数量 .threadPoolSize(3) // 线程优先级 .threadPriority(Thread.NORM_PRIORITY - 2) .defaultDisplayImageOptions(options) // You can pass your own memory cache implementation你可以通过自己的内存缓存实现 // .memoryCache(new UsingFreqLimitedMemoryCache(2 * 1024 * 1024)) // .memoryCacheSize(2 * 1024 * 1024) //硬盘缓存50MB .diskCacheSize(50 * 1024 * 1024) //将保存的时候的URI名称用MD5 .diskCacheFileNameGenerator(new Md5FileNameGenerator()) // 加密 .diskCacheFileNameGenerator(new HashCodeFileNameGenerator())//将保存的时候的URI名称用HASHCODE加密 .tasksProcessingOrder(QueueProcessingType.LIFO) .diskCacheFileCount(100) //缓存的File数量 .diskCache(new UnlimitedDiscCache(file))// 自定义缓存路径 // .defaultDisplayImageOptions(DisplayImageOptions.createSimple()) // .imageDownloader(new BaseImageDownloader(context, 5 * 1000, // 30 * 1000)) // connectTimeout (5 s), readTimeout (30 s)超时时间 .writeDebugLogs() // Remove for release app .build(); ImageLoader.getInstance().init(config); }}
阅读全文
0 0
- 用RecyclerView请求网络数据
- MVP+recyclerview网络请求列表数据
- OkHttp封装+RecyclerView显示网络请求数据
- Android---------通过OkHttp网络请求利用RecyclerView展示数据
- RecyclerView+OKhttp三大布局与网络请求数据
- 网络请求数据添加到列表(okhttp+RecyclerView)
- RecyclerView多条目加载(网络请求数据)
- banner+Recyclerview+Gson+okhtto请求网络数据+解析
- RecyclerView和okhttp结合 实现一个网络请求数据
- android:MVP网络请求数据,运用RecyclerView-LinearLayout展示
- MVP架构分包+OkHttp网络请求+RecyclerView展示数据
- Retrofit网络请求+Recyclerview展示数据+Fresco显示图片
- Retrofit网络请求+Recyclerview展示数据+Fresco显示图片
- RecyclerView网络加载数据
- MVP实现用Retrofit请求网络数据Fresco加载图片,Recyclerview CheckBox显示并实现全选删除
- Android使用OKHTTP网络框架请求数据,RecyclerView结合Glide展示图片,瀑布流布局样式
- OkHttp的网络请求数据和RecyclerView的多条目加载,添加分割线
- OkHttp的网络请求数据和RecyclerView的多条目加载,添加分割线
- Android HttpUrlconnection数据请求
- 基于ueditor-1.1.1图片上传到项目外配置
- LeetCode63 Unique Paths II
- 使用TCP协议的NAT穿透技术 (转)
- 通俗语言说 SOA SOAP WSDL REST
- 用RecyclerView请求网络数据
- 16反转链表python
- Python 排序算法
- 1802: [Ahoi2009]checker
- 2013 NOIP提高组 花匠
- 灰度图像抖动简介
- 【基础知识】C语言与C++的运算符
- C++学习之路——复合类型
- Matlab R2017A 破解版安装教程