ListView 分页显示(转载+修改)下

通过实践发现,尚大大在判断”上一页“按钮和”下一页按钮“是否可用的地方,有问题:

原代码:

 public void checkButton(){
        //索引值小于等于0,表示不能向前翻页了,以经到了第一页了。
        //将向前翻页的按钮设为不可用。
        if(index <=0){
            btnLeft.setEnabled(false);
        }
        //值的长度减去前几页的长度,剩下的就是这一页的长度,如果这一页的长度比View_Count小,表示这是最后的一页了,后面在没有了。
        //将向后翻页的按钮设为不可用。
        else if(data.length - index*VIEW_COUNT <= VIEW_COUNT){
            btnRight.setEnabled(false);
        }

        //否则将2个按钮都设为可用的。
        else {
            btnLeft.setEnabled(true);
            btnRight.setEnabled(true);
        }

原代码在两种情况下出现bug:

1.当数据长度<VIEW_COUNT时,出现问题

2、数据长度<2*VIEW_COUNT时(即只能显示两页),也会出现问题

修改后代码:

public void checkButton() {
        // 当本页是第一页时(index=0),数据条数少于每页的显示数目时,上一页按钮和下一页按钮都不能用
        if (index <= 0 && data.length <= VIEW_COUNT) {
            btnLeft.setEnabled(false);
            btnRight.setEnabled(false);
            // 当本页是第一页时(index=0),并且数据个数大于每页的显示数目时,上一页按钮不可以用,下一页按钮可以用
        } else if (index <= 0 && data.length > VIEW_COUNT) {
            btnLeft.setEnabled(false);
            btnRight.setEnabled(true);
        }
        // 值的长度减去前几页的长度,剩下的就是这一页的长度,如果这一页的长度比View_Count小,表示这是最后的一页了,后面在没有了。
        // 将向后翻页的按钮设为不可用。
        else if (index > 0
                && (data.length - index * VIEW_COUNT) <= VIEW_COUNT) {
            btnRight.setEnabled(false);
            btnLeft.setEnabled(true);
        }

        // 否则将2个按钮都设为可用的。
        else {
            btnLeft.setEnabled(true);
            btnRight.setEnabled(true);
        }

修改完了之后,就不会出现问题了(待会的放的项目代码中,初始化数据时,有这两种情况,改一下注释运行一下即可知道问题在哪里)

代码写进项目时注意:

1.第一次检测button的可用性时,将checkButton();放在  listview绑定adapter的代码下面

2.在Listview界面下面,加上两个button时,很容易出现listView将button给覆盖掉,解决这个问题,会在后面的博客中写出来解决方法。

3.在项目中引用时,当有返回上一页的按钮时,在onClick()事件时,在里面放一句:index=0;  这样在重新点击本页面时,数据会重新刷新,显示第一页,否则将停留在上次的页面!

那个我想知道怎么上传项目??我怎么找不到位置?

时间: 2024-11-13 02:14:07

ListView 分页显示(转载+修改)下的相关文章

Sqlite 数据库分页查询(ListView分页显示数据)

下面介绍一下我的这个demo. 流程简述: 我在raw文件夹下面放了名称为city的数据库,里面包含全国2330个城市,以及所属省,拼音简写等信息. 首先 在进入MainActivity的时候,创建数据库并读入sd卡文件中data/data/databases/city. 然后 我再开启子线程去读取前50条数据,显示在ListView中. 当用户浏览数据, 前50条不够时,他会滑动ListView以查看更多数据,此时,listview的数据源会递增,50 ,100,150,.... 以50为增量

Hibernate+Spring+Struts2整合开发中的一个分页显示方案(转载)

分页显示一直是web开发中一大烦琐的难题,传统的网页设计只在一个JSP或者ASP页面中书写所有关于数据库操作的代码,那样做分页可能简单一点,但当把网站分层开发后,分页就比较困难了,下面是我做Spring+Hibernate+Struts2项目时设计的分页代码,与大家分享交流. 1.DAO层接口的设计,在MemberDao接口中定义了如下两个方法: public interface MemberDao{        //省略了其他的代码        /**     * 分页查询     * @

xcode6+ios8 横屏下启动画面不显示问题修改

本文转载自汉果博客 » xcode6+ios8 横屏下启动画面不显示问题修改 最近我做游戏 发现xcode6+ios8 横屏下启动画面不显示   显示黑屏 . 设置横屏后 设置catalog 添加使用的图片.在iphone6plus 下是横屏 显示启动画面  在 其他iphone设备是不显示启动画面的 .ipad也显示启动画面.只有iphone有问题 . 最后有人指导,我记录下 . 1.如果你的游戏支持横屏 切iphone ipad 都支持 则启动图片你要准备 横竖 所有尺寸的图片.2.在inf

Android 自定义ListView实现底部分页刷新与顶部下拉刷新

在项目开发中,由于数据过大时,需要进行分页加载或下拉刷新,来缓解一次性加载的过长等待.本篇博文实例讲解通过自定义的ListView实现底部分页加载和顶部下拉刷新的效果. 其效果图: 一.ListView 底部分页加载 整个底部分页加载,主要分一下几步: 1.加载底部自定义View; 2.响应OnScrollListener监听事件,onScroll方法记录最后可见的View Item以及整个totalItemCount.当onScrollStateChanged状态改变时, 当滑动到底端,并滑动

ASP.NET使用ListView数据绑定控件和DataPager实现数据分页显示(一)

为什么使用ListView+DataPager的方式实现分页显示? .net提供的诸多数据绑定控件,每一种都有它自己的优点和缺点.如果需要对数据进行操作,如果数据量不大的情况下,DataList和GridView是最好的选择,但是他们会生产额外的<table><tr><tbody><td>标签.如果只是罗列出来一些简单的数据,出于对性能的考虑,repeater必然是首选.当然ListView和DataPager的组合必将是开发中的黄金组合,无论从性能上和功能

Android 自定义ListView实现底部分页刷新与顶部下拉刷新,androidlistview

在项目开发中,由于数据过大时,需要进行分页加载或下拉刷新,来缓解一次性加载的过长等待.本篇博文实例讲解通过自定义的ListView实现底部分页加载和顶部下拉刷新的效果. 其效果图: 一.ListView 底部分页加载 整个底部分页加载,主要分一下几步: 1.加载底部自定义View; 2.响应OnScrollListener监听事件,onScroll方法记录最后可见的View Item以及整个totalItemCount.当onScrollStateChanged状态改变时, 当滑动到底端,并滑动

extjs4 分页工具栏pagingtoolbar的每页显示数据combobox下拉框

var itemsPerPage = 20; var combo; //创建数据源store Ext.define('recordStore', { extend : 'Ext.data.Store', // autoLoad : { // start : 0, // limit : itemsPerPage // }, start : 0, limit : itemsPerPage, pageSize : itemsPerPage, model : 'recordModel', proxy :

ASP.NET使用ListView数据绑定控件和DataPager实现数据分页显示(二)

使用ListView控件进行修改,删除与添加操作1.页面代码: <asp:ListView ID="lv2" runat="server" onpagepropertieschanging="lv_PagePropertiesChanging2" onitemcanceling="lv2_ItemCanceling" onitemediting="lv2_ItemEditing" onitemupda

Android ListView分页,动态添加数据

1.ListView分页的实现,重点在于实现OnScrollListener接口,判断滑动到最后一项时,是否还有数据可以加载, 我们可以利用listView.addFootView(View v)方法进行提示 自定义一个ListView(这里本来想进行一些自定已修改的...实际代码并没有做)CornerListView package com.example.testlistview; import android.widget.AbsListView; import android.conte