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;iarg0,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(ResponseInfoarg0){
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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。