PullToRefreshListView实现多条目加载上拉刷新和下拉加载
本文实例为大家分享了Android九宫格图片展示的具体代码,供大家参考,具体内容如下
XML布局
主页面main布局
pulllist布局
java代码
App页面
packagecom.example.duanpengpenglx20171108; importandroid.app.Application; importcom.nostra13.universalimageloader.cache.memory.impl.UsingFreqLimitedMemoryCache; importcom.nostra13.universalimageloader.core.DisplayImageOptions; importcom.nostra13.universalimageloader.core.ImageLoader; importcom.nostra13.universalimageloader.core.ImageLoaderConfiguration; importcom.nostra13.universalimageloader.core.assist.QueueProcessingType; importcom.nostra13.universalimageloader.core.download.BaseImageDownloader; /** *Createdby朋on2017/11/8. */ publicclassAppextendsApplication{ @Override publicvoidonCreate(){ super.onCreate(); ImageLoaderConfigurationconfig=newImageLoaderConfiguration .Builder(this) .memoryCacheExtraOptions(480,800) .threadPoolSize(5) .threadPriority(Thread.NORM_PRIORITY-2) .denyCacheImageMultipleSizesInMemory() .memoryCache(newUsingFreqLimitedMemoryCache(2*1024*1024))//Youcanpassyourownmemorycacheimplementation/你可以通过自己的内存缓存实现 .memoryCacheSize(2*1024*1024) .tasksProcessingOrder(QueueProcessingType.LIFO) .defaultDisplayImageOptions(DisplayImageOptions.createSimple()) .imageDownloader(newBaseImageDownloader(this,5*1000,30*1000))//connectTimeout(5s),readTimeout(30s)超时时间 .writeDebugLogs()//Removeforreleaseapp .build();//开始构建 //初始化imageloader; ImageLoader.getInstance().init(config); } }
MainActivity页面
publicclassMainActivityextendsAppCompatActivity{ Listarr=newArrayList(); privateViewview; privateListViewlv; privateAdapteradapter; inti=0; privatePullToRefreshListViewpull; privateAdapteradapter1; @Override protectedvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); pull=(PullToRefreshListView)findViewById(R.id.pull); pull.setMode(PullToRefreshBase.Mode.BOTH); ListViewlv=pull.getRefreshableView(); adapter1=newAdapter(); lv.setAdapter(adapter1); newMyAsyncTask().execute("http://www.93.gov.cn/93app/data.do?channelId=0&startNum=0"); pull.setOnRefreshListener(newPullToRefreshBase.OnRefreshListener2 (){ @Override //上拉 publicvoidonPullDownToRefresh(PullToRefreshBase refreshView){ arr.clear(); i=0; newMyAsyncTask().execute("http://www.93.gov.cn/93app/data.do?channelId=0&startNum="+i); } @Override //下拉加载20条 publicvoidonPullUpToRefresh(PullToRefreshBase refreshView){ i=i+20;newMyAsyncTask().execute("http://www.93.gov.cn/93app/data.do?channelId=0&startNum="+i); } }); } classMyAsyncTaskextendsAsyncTask { @Override protectedStringdoInBackground(String...params){ Stringstring=""; StringBufferstringBuffer=newStringBuffer(); try{ URLurl=newURL(params[0]); URLConnectionurlConnection=url.openConnection(); InputStreaminputStream=urlConnection.getInputStream(); BufferedReaderbufferedReader=newBufferedReader(newInputStreamReader(inputStream)); while((string=bufferedReader.readLine())!=null){ stringBuffer.append(string); } }catch(Exceptione){ e.printStackTrace(); } returnstringBuffer.toString(); } @Override protectedvoidonPostExecute(Strings){ super.onPostExecute(s); Jbeanfragone_bean=newGson().fromJson(s,Jbean.class); List data=fragone_bean.getData(); arr.addAll(data); adapter1.notifyDataSetChanged(); pull.onRefreshComplete(); } } classAdapterextendsBaseAdapter{ @Override publicintgetCount(){ returnarr.size(); } @Override publicObjectgetItem(intposition){ returnarr.get(position); } @Override publiclonggetItemId(intposition){ returnposition; } @Override publicViewgetView(intposition,ViewconvertView,ViewGroupparent){ Sjsj=newSj(); Jbean.DataBeandataBean=arr.get(position); if(convertView==null){ convertView=View.inflate(MainActivity.this,R.layout.pulllist,null); sj.image=convertView.findViewById(R.id.iv); sj.tv=convertView.findViewById(R.id.tv); convertView.setTag(sj); }else{ sj=(Sj)convertView.getTag(); } sj.tv.setText(dataBean.getSUBTITLE()); DisplayImageOptionsoptions=newDisplayImageOptions.Builder() .cacheInMemory(true) .cacheOnDisk(true) .showImageOnLoading(R.drawable.zhengzaijiazai) .showImageForEmptyUri(R.drawable.zhengzaijiazai) .showImageOnFail(R.drawable.zhengzaijiazai) .bitmapConfig(Bitmap.Config.RGB_565) .build(); ImageLoader.getInstance().displayImage((String)dataBean.getIMAGEURL(),sj.image,options); returnconvertView; } } classSj{ ImageViewimage; TextViewtv; } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。