Android通过XListView实现上拉加载下拉刷新功能
本文实例为大家分享了XListView实现上拉加载下拉刷新的具体代码,供大家参考,具体内容如下
##导入XListVIew第三方库文件。通过LinkedList将刷新数据插入到集合头部,将加载的数据放入集合尾部## privateContextcontext; privateViewview; privateStringpath; privateXListViewxlv; privateLinkedListlistData; privateHandlerhandler=newHandler(){ @SuppressWarnings("unchecked") publicvoidhandleMessage(android.os.Messagemsg){ intcode=msg.arg1; if(msg.arg1==400){ Toast.makeText(context,"数据格式解析不正确",0).show(); } else{ NewsFragmentAdaptermyAdapter=null; switch(code){ case0: //默认 listData=(LinkedList)msg.obj; myAdapter=newNewsFragmentAdapter(context,listData); xlv.setAdapter(myAdapter); break; case1: LinkedListshualist=(LinkedList)msg.obj; myAdapter=newNewsFragmentAdapter(context,shualist); for(inti=0;iloadlist=(LinkedList)msg.obj; myAdapter=newNewsFragmentAdapter(context,loadlist); for(inti=0;i arg0,Viewarg1,intarg2,longarg3){ Intentintent=newIntent(context,WebViewActivity.class); intent.putExtra("path",listData.get(arg2-1).article_url); startActivity(intent); } }); } publicvoidxListViewListener(){ xlv.setXListViewListener(newIXListViewListener(){ //当下拉刷新时实现的操作 @Override publicvoidonRefresh(){ getMessage(path,1);//请求网络,将新请求的内容加载到集合前端 } //当上拉加载时实现的操作内容 @Override publicvoidonLoadMore(){//请求网络,将请求的新内容加载到集合后端 getMessage(path,2); } }); } publicvoidgetMessage(Stringpath,finalintcode){ HttpUtilsutils=newHttpUtils(); //设置刷新间隔时间,如果不设置默认一分钟后才能刷新出新内容 utils.configCurrentHttpCacheExpiry(0); utils.send(HttpMethod.GET,path,newRequestCallBack (){ //请求网络失败回调的方法 @Override publicvoidonFailure(HttpExceptionarg0,Stringarg1){ } //请求网络成功回调的方法 @Override publicvoidonSuccess(ResponseInfo arg0){ Stringinfo=arg0.result; Gsongson=newGson(); LinkedListlist=gson.fromJson(info,ModelBean.class).data; Messagemessage=newMessage(); if(list!=null){ message.arg1=code; message.obj=list; }else{ message.arg1=400; } handler.sendMessage(message); } }); } privatevoidstopLoadOrRefresh(){ //停止加载 xlv.stopLoadMore(); //停止刷新 xlv.stopRefresh(); //最近一次刷新时间 xlv.setRefreshTime(getTime()); } publicStringgetTime(){ //格式化时间 SimpleDateFormatformat=newSimpleDateFormat("hh:mm:ss"); Datedate=newDate(); Stringtime=format.format(date); returntime; }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。