热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

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

这篇文章主要为大家详细介绍了Android通过XListView实现上拉加载下拉刷新功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了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  loadlist = (LinkedList) msg.obj;
          myAdapter = new NewsFragmentAdapter(context, loadlist);
          for (int i = 0; i  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;
  }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


推荐阅读
  • 本文总结了在使用Ionic 5进行Android平台APK打包时遇到的问题,特别是针对QRScanner插件的改造。通过详细分析和提供具体的解决方法,帮助开发者顺利打包并优化应用性能。 ... [详细]
  • 本文介绍如何使用阿里云的fastjson库解析包含时间戳、IP地址和参数等信息的JSON格式文本,并进行数据处理和保存。 ... [详细]
  • 本文详细介绍了Git分布式版本控制系统中远程仓库的概念和操作方法。通过具体案例,帮助读者更好地理解和掌握如何高效管理代码库。 ... [详细]
  • 本文回顾了2017年的转型和2018年的收获,分享了几家知名互联网公司提供的工作机会及面试体验。 ... [详细]
  • 本文详细介绍了如何在Android 4.4及以上版本中配置WebView以实现内容的自动高度调整和屏幕适配,确保中文显示正常,并提供代码示例。 ... [详细]
  • Web App vs Native App:未来的移动应用趋势
    随着移动互联网的发展,Web App和Native App之间的竞争日益激烈。对于开发者而言,选择哪一种技术路径更为明智?本文将深入探讨两种应用模式的特点及未来趋势。 ... [详细]
  • 作为一名在大型手机游戏公司工作的程序员,尽管主要负责游戏逻辑和内容的开发,但对iOS底层开发接触较少。现在有了iPhone和可以虚拟MAC环境的电脑,希望能找到有效的iOS开发学习路径。 ... [详细]
  • 本文详细介绍了如何在Android应用中处理和使用Cookie,包括登录时获取Cookie并将其存储,以及在WebView中同步这些Cookie以保持用户会话。 ... [详细]
  • 本文探讨了在安卓设备上的微信H5环境中,如何解决长按图片时无法保存或分享Base64编码图片及Blob形式图片的问题,并提供了有效的解决方案。 ... [详细]
  • 在开发一款应用程序时,我需要向用户提供一系列URL列表。为了提高用户体验,计划根据Wi-Fi状态预先加载这些URL,以便用户在点击时能够迅速访问内容,特别是在连接到Wi-Fi的情况下。 ... [详细]
  • Flutter 核心技术与混合开发模式深入解析
    本文深入探讨了 Flutter 的核心技术,特别是其混合开发模式,包括统一管理模式和三端分离模式,以及混合栈原理。通过对比不同模式的优缺点,帮助开发者选择最适合项目的混合开发策略。 ... [详细]
  • 本文探讨了在UIScrollView上嵌入Webview时遇到的一个常见问题:点击图片放大并返回后,Webview无法立即滑动。我们将分析问题原因,并提供有效的解决方案。 ... [详细]
  • 探讨在循环中调用$.post()时,回调函数为何会在循环结束后才开始执行,并提供解决方案和优化建议。 ... [详细]
  • 作为一名 Ember.js 新手,了解如何在路由和模型中正确加载 JSON 数据是至关重要的。本文将探讨两者之间的差异,并提供实用的建议。 ... [详细]
  • 本文详细介绍了在企业级项目中如何优化 Webpack 配置,特别是在 React 移动端项目中的最佳实践。涵盖资源压缩、代码分割、构建范围缩小、缓存机制以及性能优化等多个方面。 ... [详细]
author-avatar
喜欢香覀香的树花园
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有