通过实践发现,尚大大在判断”上一页“按钮和”下一页按钮“是否可用的地方,有问题:
原代码:
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