如何在列表视图中实现OnScrollListener?

2023-11-24

我从服务器获取 500 条记录..我想在列表视图中显示 10 个项目,当列表视图到达末尾时我需要加载另外 10 个项目,依此类推.. 我在网上看到了很多例子,但我无法解决它 请帮助我。

这是我的代码:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.form);
    Seen = (ImageView) findViewById(R.id.SeenStatus);       


    new GetDescendingDate().execute();
    userArray = new ArrayList<listmodel>();

    ListView lv = getListView();


    lv.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view,
                int position, long id) {
            // getting values from selected ListItem
            String Id = ((TextView) view.findViewById(R.id.txtId))
                    .getText().toString();

            // Starting single activity
            Intent in = new Intent(getApplicationContext(),
                    details.class);
            in.putExtra("TAG_Id", Id);
            startActivity(in);


    });



    }

}


private class GetDescendingDate extends AsyncTask<Void, Void, Void> {

    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        // Showing progress dialog
        pDialog = new ProgressDialog(Atab.this);
        pDialog.setMessage("Loading...");
        pDialog.setCancelable(false);
        pDialog.show();

    }

    @TargetApi(Build.VERSION_CODES.GINGERBREAD)
    @Override
    protected Void doInBackground(Void... arg0) {

        JSONParser jParser = new JSONParser();

        // Getting JSON Array node
        JSONArray json;

        session = new SessionManager(getApplicationContext());
        session.checkLogin();
        HashMap<String, String> user = session.getUserDetails();
        String email = user.get(SessionManager.KEY_EMAIL);
        String Status = "New";
        String get;
        get = URL.Get;
        String url_new = get + email + "/" + Status + "/" + "SODD"
                + "/" + "null" + "/" + "0" + "/" + "10";
        try {
            json = jParser.getJSONFromUrl(url_new);

            if (json != null) {
                // looping through All Orders
                for (int i = 0; i < json.length(); i++) {
                    try {
                        JSONObject c = json.getJSONObject(i);

                        String number = c.getString("No");
                        String By = c.getString("By");
                        String Type = c.getString("Type");
                        String Descripton = c.getString("Desc");
                        String Date = c.getString("DateTime");
                        String Id = c.getString("Id");
                        String ONo = c.getString("ONo");
                        String FirstName = c        .getString("FirstName");
                        String Price = c.getString("Price");


                        listmodel list = new listmodel();
                        list.setId(Id);
                        list.setBy(By);
                        list.setType(Type);
                        list.setDescription(Descripton);
                        list.setDate(Date);
                        list.setPrice(Price);
                        list.setName(FirstName);

                        userArray.add(list);

                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }
            }

            else {
                Log.e("New", "Couldn't get any data from the url");

            }
        } catch (JSONException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }

        return null;
    }

    protected void onPostExecute(Void result) {
        super.onPostExecute(result);

        if (pDialog.isShowing())
            pDialog.dismiss();

        adapter = new adapter(Atab.this,userArray);         
        setListAdapter(adapter);


    }

}

你可以这样实现..

 listView.setOnScrollListener(new OnScrollListener() {
        private int currentVisibleItemCount;
        private int currentScrollState;
        private int currentFirstVisibleItem;
        private int totalItem;
        private LinearLayout lBelow;


        @Override
        public void onScrollStateChanged(AbsListView view, int scrollState) {
            // TODO Auto-generated method stub
            this.currentScrollState = scrollState;
            this.isScrollCompleted();               
        }

        @Override
        public void onScroll(AbsListView view, int firstVisibleItem,
                int visibleItemCount, int totalItemCount) {
            // TODO Auto-generated method stub
            this.currentFirstVisibleItem = firstVisibleItem;
            this.currentVisibleItemCount = visibleItemCount;
            this.totalItem = totalItemCount;


        }

        private void isScrollCompleted() {
            if (totalItem - currentFirstVisibleItem == currentVisibleItemCount
                    && this.currentScrollState == SCROLL_STATE_IDLE) {
             /** To do code here*/


        }
    });
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在列表视图中实现OnScrollListener? 的相关文章

  • Android主线程的IO操作

    我的问题有两个 是否建议在 Android 的主线程上进行 IO 操作 或者它是否有可能导致我的应用程序崩溃 如果在主线程上执行 IO 操作不理想 我可以使用哪些其他框架 以便当我的应用程序加载时它可以执行一些基本的 IO 文件读取并将值存
  • 应用程序在加载 xml 布局文件的主线程中做了太多工作

    我正在制作一个 9x9 数独网格 其中 81 个单元格本身就是一个 3x3 网格 单个细胞看起来像这样 1 2 3 4 5 6 7 8 9 每个数字代表该单元格的铅笔注释 我有一个名为 cell layout xml 的文件 表示这种 3x
  • 如何在应用程序关闭时在 Android 通知中显示操作按钮?

    我有一个安卓应用程序 对于通知 我们必须显示一些操作按钮 当应用程序打开时 我们可以自由地构建通知并显示操作按钮 但是当应用程序关闭时 通知会在 Android 的通知托盘中收到 应用程序开发人员无法控制构建用户界面和操作按钮 我们现在如何
  • 使用 Fragment 在工具栏中实现 SearchView

    当前情况 我的应用程序主页由导航抽屉组成 因此我将视图作为片段加载 我的工具栏中也有搜索图标 我在中实现了它menu xml 下一步我实施了SearchView通过以下问题的答案来获取搜索图标在工具栏中实现搜索 https stackove
  • 为什么反射会减慢Android手机的速度

    我多次读到反射会降低手机性能 这有多真实 例如 在我的例子中 我从 Web 服务获取一些参数 这些参数与我在 Android 应用程序中的类的参数同名 所以我只是使用java字段和反射设置这些参数的值 它似乎并没有降低性能 有人可以向我解释
  • HMS 核心地图套件在我的 Android 应用程序上根本无法工作

    我正在尝试在我的应用程序中使用华为 HMS 地图套件 我对整体地图很陌生 无论是来自谷歌还是华为 我按照文档中的教程以及华为提供的代码实验室中的说明进行操作 并将我的代码在一起 但是当我运行地图活动时 什么也没有出现 我得到的只是一个空白活
  • React Native Expo StackNavigator 重叠通知栏

    我正在尝试为我的 React Native Expo 应用程序实现导航栏 这里有一个问题 dependencies expo 18 0 3 react 16 0 0 alpha 12 react native 0 45 1 react na
  • Android -room 持久库 - DAO 调用是异步的,因此如何获取回调?

    从我读到的Room 不允许您在主线程上发出数据库查询 因为可能会导致主线程延迟 所以想象一下我正在尝试更新 UI 主线程上的文本视图 其中一些数据我将如何得到回调 让我给你举个例子 想象一下 我想将我的业务模型数据存储到一个名为 事件 的对
  • MIUI 权限被拒绝活动 KeyguardLocked

    当应用程序处于后台且屏幕被锁定时 我无法启动活动 没有异常或警告 只是不调用 onCreate 我一直在与这个问题作斗争 我想我终于找到了它的根源 日志中有一行 D com android server am ExtraActivityMa
  • 如何为我的 Android Market APK 创建证书?

    我想将我的第一个 APK 应用程序上传到 Android Market 但我收到了此错误 顺便说一下 在 stackoverflow 中搜索时并没有引导我找到正确的链接 市场不接受使用调试证书签名的 APK 创建有效期至少 50 年的新证书
  • Android NDK 代码中的 SIGILL

    我在市场上有一个 NDK 应用程序 并获得了有关以下内容的本机崩溃报告 SIGILL信号 我使用 Google Breakpad 生成本机崩溃报告 以下是详细信息 我的应用程序是为armeabi v7a with霓虹灯支持 它在 NVIDI
  • 在运行时更改用作背景的 Drawable xml 内的形状纯色

    我有一个 Drawable xml 文件 background xml
  • 移动设备上的 TensorFlow(Android、iOS、Windows Phone)

    我目前正在寻找不同的深度学习框架 特别是用于训练和部署卷积神经网络 要求是 它可以在带有 GPU 的普通 PC 上进行训练 但训练后的模型必须部署在三个主要的移动操作系统上 即 Android iOS 和 Windows Phone Ten
  • 哪个视图最亮?

    在Android中 哪个是轻量级视图 例如 View Textview Edittext 等 在某些情况下 我们需要使用视图来填充区域而不向用户显示视图 同时屏幕加载速度应该很快 您可以使用空间 android widget Space S
  • Unity c# 四元数:将 y 轴与 z 轴交换

    我需要旋转一个对象以相对于现实世界进行精确旋转 因此调用Input gyro attitude返回表示设备位置的四元数 另一方面 这迫使我根据这个四元数作为默认旋转来计算每个旋转 将某些对象设置为朝上的简单方法如下 Vector3 up I
  • 离子初始加载时间

    我正在使用 Ionic 构建一个简单的应用程序 但我的应用程序在冷启动时的初始加载时间方面存在性能问题 这是我所做的 collection repeat 代替带有 track by 的 ng repeat 原生滚动 overflow scr
  • 检查应用程序是否在 Android Market 上可用

    给定 Android 应用程序 ID 包名称 如何以编程方式检查该应用程序是否在 Android Market 上可用 例如 com rovio angrybirds 可用 而 com random app ibuilt 不可用 我计划从
  • 将对象从手机共享到 Android Wear

    我创建了一个应用程序 在此应用程序中 您拥有包含 2 个字符串 姓名和年龄 和一个位图 头像 的对象 所有内容都保存到 sqlite 数据库中 现在我希望可以在我的智能手表上访问这些对象 所以我想实现的是你可以去启动 启动应用程序并向左和向
  • 从文件路径显示图像视图?

    我需要仅使用文件名而不是资源 ID 来显示图像 ImageView imgView new ImageView this imgView setBackgroundResource R drawable img1 我在可绘制文件夹中有图像
  • Android GetPTLAFormat 上的 Phonegap 错误

    我们正在开发一个使用 jQuery 移动和电话间隙的应用程序 一切似乎都工作正常 但是当在连接的 Android 手机上运行应用程序时 我们在 Eclipse logcat 中看到大量类似这样的错误 0 GetPTLAFormat inva

随机推荐

  • FragmentActivity 与 ViewPager:方向更改时崩溃

    我在FragmentActivity中使用了ViewPager 当方向改变时我会崩溃 Override protected void onCreate Bundle savedInstanceState super onCreate sav
  • ShaderTextureLod参数值?

    LOD参数取什么值纹理洛德 我找到的规范根本没有提到这一点 是百分比还是带百分比的指数值 如果是后者 有没有办法获取纹理的 mipmap 数量 以便我能够使用百分比 LOD参数指定 mipmap 级别 四舍五入到最接近的整数 请记住 Ope
  • Docker 和 XDebug 不读取断点 VSCode

    过去 6 个月 我一直在 MAC 上使用 XDebug 和 PHP 7 0 版本 对 Docker 容器进行远程调试 我正在运行旧版本的 docker 它使用 VirtualBox 来为 docker 建立虚拟机 一切正常 我最近将 doc
  • 无法解决 PyCaret 的导入错误

    我试图通过在 anaconda python 3 8 中创建环境来安装 pycaret 一切都很好 除了当我试图从pycaret classification import 尽管我已经安装了所有依赖项 但我还是显示错误 ImportErro
  • 列出用户定义的变量,python

    我正在尝试迭代 python 脚本中设置的变量 我遇到了以下情况 枚举或列出 此处您最喜欢的语言 程序中的所有变量 在第一个例子中 us bin python foo1 Hello world foo2 bar foo3 1 a 2 b f
  • 使用命令和工厂设计模式来执行排队作业

    我有一个在数据库中排队的作业列表 我需要从数据库中读取这些作业并使用线程并行执行它们 并且我有一个命令类列表来执行每个作业 所有这些作业都实现了通用接口 命令模式 但是当我从数据库检索待处理的作业时 我需要为每个作业实例化正确的命令对象 如
  • 获取具有固定宽度的多行文本的高度以使对话框正确调整大小

    我想创建一个对话框 其中包含某种多行文本元素 JLabel JTextArea 等 并换行 我希望对话框具有固定宽度 但根据文本大小调整高度 我有这个代码 import static javax swing GroupLayout DEFA
  • LINQ 中的动态 where 条件

    我有一个场景 我必须在 LINQ 中使用动态 where 条件 我想要这样的东西 public void test bool flag from e in employee where e Field
  • 在 Objective-C 中创建整数属性数组

    我在 Objective C 中创建整数数组的属性时遇到问题 我不确定这是否可以在 Obj C 中做到 所以我希望有人可以帮助我找出如何正确地做到这一点或提供替代解决方案 myclass h interface myClass NSObje
  • 如何分析在生产服务器上运行的 ASP.NET 应用程序?

    我有一个 ASP NET 应用程序 在生产服务器上始终使用 75 100 的 CPU 如何分析应用程序以找出代码的哪一部分占用了最多的 CPU 我研究了几种不同的工具 Xte Profiler EQATEC dotTrace 但它们似乎都希
  • `filter(func)` 和 `filter(|x| func(x))` 有什么区别?

    有什么区别filter x func x and filter func 也许一个好的起点是了解如何filter func 可以使用类似于以下的语法来编写filter x func x 我的代码如下所示 fn filter out dupl
  • Application.Current.MainWindow.Close 与 Application.Current.Shutdown

    Should Application Current Shutdown 不作为关闭 WPF 应用程序的最佳实践吗 我有一个小型的多窗口应用程序 关闭 似乎对我的所有退出命令都很有效 但是 我被告知要始终使用Application Curre
  • 使用 Nodejs 的 Firebase 电话身份验证

    我查看了 firebase 的文档 但没有得到任何在服务器端通过电话验证用户身份的答案 我发现的只是 FIREBASEUI 或客户端身份验证 那么 我如何通过服务器端对用户进行身份验证 例如以表单形式向他们提供电话号码的输入 并在该表单上向
  • datetime_select 的值为零?

    当使用 作为 新 对象表单时 如何将选项设置为默认不选择日期而是选择 nil null 值 相关模型中的字段可以选择为空 但默认情况下 datetime select 控件没有空选项 我想你想要 f datetime select star
  • 简单的去抖动例程

    您是否有一个简单的去抖例程可以方便地处理单个开关输入 这是一个简单的裸机系统 没有任何操作系统 我想避免具有特定计数的循环构造 因为处理器速度可能会波动 我想你可以在这里学到很多东西 http www ganssle com debounc
  • 如何忽略数组解构中的某些返回值?

    当我只对索引 0 之外的数组值感兴趣时 在数组解构时是否可以避免声明无用的变量 在下文中 我想避免声明a 我只对索引 1 及以后感兴趣 How can I avoid declaring a const a b rest 1 2 3 4 5
  • 如何使用 Node.js 抓取包含动态内容的页面?

    我正在尝试刮一个website但我没有得到一些元素 因为这些元素是动态创建的 我在node js中使用cheerio 我的代码如下 var request require request var cheerio require cheeri
  • 如何在coldfusion中使用CFQuery执行2个或多个插入语句?

    是否可以使用执行 2 个插入或更新语句cfquery 如果是的话怎么办 如果不是 在 Coldfusion 中执行多个查询的最佳方法是什么 即仅打开一个到数据库的连接 我想每次我们打电话cfquery我们正在打开新的连接数据库 是否可以执行
  • Ember、Ember 数据和 MongoDB 的 _id

    我已经看到有人讨论过这个问题 但我仍然对处理 Mongo 的问题有疑问 id into id 我使用 mongoose 作为我的 ORM 虽然它有虚拟 但我似乎无法让它正常工作 以下是我的猫鼬模型中的内容 尝试从后端修复 mongoose
  • 如何在列表视图中实现OnScrollListener?

    我从服务器获取 500 条记录 我想在列表视图中显示 10 个项目 当列表视图到达末尾时我需要加载另外 10 个项目 依此类推 我在网上看到了很多例子 但我无法解决它 请帮助我 这是我的代码 public void onCreate Bun