千家信息网

Android怎么通过XListView实现上拉加载下拉刷新功能

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要介绍了Android怎么通过XListView实现上拉加载下拉刷新功能的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Android怎么通过XListView实
千家信息网最后更新 2026年11月02日Android怎么通过XListView实现上拉加载下拉刷新功能

这篇文章主要介绍了Android怎么通过XListView实现上拉加载下拉刷新功能的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Android怎么通过XListView实现上拉加载下拉刷新功能文章都会有所收获,下面我们一起来看看吧。

具体代码如下:

## 导入XListVIew第三方库文件。通过LinkedList将刷新数据插入到集合头部,将加载的数据放入集合尾部 ##  private Context context;  private View view;  private String path;  private XListView xlv;  private LinkedList listData;  private Handler handler = new Handler() {    @SuppressWarnings("unchecked")    public void handleMessage(android.os.Message msg) {      int code = msg.arg1;      if(msg.arg1==400){        Toast.makeText(context, "数据格式解析不正确", 0).show();      }      else{        NewsFragmentAdapter myAdapter = null;        switch (code) {        case 0:          // 默认          listData = (LinkedList) msg.obj;          myAdapter = new NewsFragmentAdapter(context, listData);          xlv.setAdapter(myAdapter);          break;        case 1:          LinkedList shualist = (LinkedList) msg.obj;          myAdapter = new NewsFragmentAdapter(context, shualist);          for (int i = 0; i < shualist.size(); i++) {            listData.addFirst(shualist.get(i));          }          myAdapter.notifyDataSetChanged();          stopLoadOrRefresh();          break;        case 2:          LinkedList loadlist = (LinkedList) msg.obj;          myAdapter = new NewsFragmentAdapter(context, loadlist);          for (int i = 0; i < loadlist.size(); i++) {            listData.addLast(loadlist.get(i));          }          myAdapter.notifyDataSetChanged();          stopLoadOrRefresh();          break;        default:          break;        }      }    };  };  @Override  public void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    context=getActivity();  }  @Override  public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {    view = inflater.inflate(R.layout.fragment, container, false);    path = getArguments().getString("path");    // 配置Xlist    xlv = (XListView) view.findViewById(R.id.xlv); // 获得控件    xlv.setPullRefreshEnable(true);         // 设置可以下拉刷新    xlv.setPullLoadEnable(true);          // 设置可以上拉加载    xListViewListener();              // 调用XListView的监听方法    if(path != null){      getMessage(path, 0);            // 调用方法请求数据    }    itemClickListner();               // 调用XListView条目点击监听方法    return view;  }  private void itemClickListner() {    xlv.setOnItemClickListener(new OnItemClickListener() {      @Override      public void onItemClick(AdapterView arg0, View arg1, int arg2, long arg3) {        Intent intent=new Intent(context, WebViewActivity.class);        intent.putExtra("path", listData.get(arg2-1).article_url);        startActivity(intent);      }    });  }  public void xListViewListener() {    xlv.setXListViewListener(new IXListViewListener() {      // 当下拉刷新时实现的操作      @Override      public void onRefresh() {        getMessage(path, 1);  // 请求网络,将新请求的内容加载到集合前端      }      // 当上拉加载时实现的操作内容      @Override      public void onLoadMore() { // 请求网络,将请求的新内容加载到集合后端        getMessage(path, 2);      }    });  }  public void getMessage(String path, final int code) {    HttpUtils utils = new HttpUtils();    // 设置刷新间隔时间,如果不设置默认一分钟后才能刷新出新内容    utils.configCurrentHttpCacheExpiry(0);    utils.send(HttpMethod.GET, path, new RequestCallBack() {      // 请求网络失败回调的方法      @Override      public void onFailure(HttpException arg0, String arg1) {      }      // 请求网络成功回调的方法      @Override      public void onSuccess(ResponseInfo arg0) {        String info = arg0.result;        Gson gson = new Gson();        LinkedList list = gson.fromJson(info, ModelBean.class).data;        Message message = new Message();        if(list != null){          message.arg1 = code;          message.obj = list;        }else{          message.arg1=400;        }        handler.sendMessage(message);      }    });  }  private void stopLoadOrRefresh() {    // 停止加载    xlv.stopLoadMore();    // 停止刷新    xlv.stopRefresh();    // 最近一次刷新时间    xlv.setRefreshTime(getTime());  }  public String getTime() {    // 格式化时间    SimpleDateFormat format = new SimpleDateFormat("hh:mm:ss");    Date date = new Date();    String time = format.format(date);    return time;  }

关于"Android怎么通过XListView实现上拉加载下拉刷新功能"这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对"Android怎么通过XListView实现上拉加载下拉刷新功能"知识都有一定的了解,大家如果还想学习更多知识,欢迎关注行业资讯频道。

拉加 下拉 内容 方法 功能 数据 网络 时间 知识 格式 篇文章 监听 成功 代码 价值 前端 头部 尾部 库文件 控件 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网是第几次科技革命的成果 广州紫鲸互联网科技有限公司 西安纸贵互联网科技有限公司 互联网科技活动banner 互联网和科技创新 互联网巨头反垄断金融科技 合肥互联网科技公司 上海挚品互联网科技 嘟嘟瓜互联网科技 互联网科技论文 丰台科技园 互联网 互联网高科技企业 受益于互联网科技的高速发展 互联网科技研发水平 互联网科技的全部知识 威龙国际互联网科技公司 互联网科技大赛获奖感言 每天都有哪些好的互联网科技 中国互联网公司的科技投入 互联网科技创业有什么好项目 互联网科技深圳 疫情对互联网科技公司影响 科技互联网创业计划书 湖南洣水互联网科技有限公司扣款 湖南诚度互联网科技有限公司 佛山市翊博互联网络科技有限公司 伍佰万互联网科技怎么赚钱 求路客互联网科技电话 平安好医生打造互联网科技医疗 东风日产互联网科技公司叫什么
0