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(PullToRefreshBaserefreshView){
arr.clear();
i=0;
newMyAsyncTask().execute("http://www.93.gov.cn/93app/data.do?channelId=0&startNum="+i);
}
@Override
//下拉加载20条
publicvoidonPullUpToRefresh(PullToRefreshBaserefreshView){
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);
Listdata=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;
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。