国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

ListView 分頁顯示(轉載+修改)下

2019-11-14 21:09:17
字體:
來源:轉載
供稿:網友
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; 這樣在重新點擊本頁面時,數據會重新刷新,顯示第一頁,否則將停留在上次的頁面!

提示:下載代碼前看一下下面的補充

修改后項目源碼

原作者項目源碼下載


2014年10月11日11:49:47

注意:在項目后來的測試中,還發現一個問題:

在兩個Button(上一頁,下一頁)的點擊事件中,缺少了一個判斷:即當界面中無加載數據時,應該將兩個Button都設置為不可點擊狀態。

當缺少了這個判斷時,造成的后果是:當界面無數據,點擊這兩個按鈕,程序會停止運行!

修改如下:

 1         cl = new Button.OnClickListener() { 2             @Override 3             public void onClick(View v) { 4                 // 加一個判斷,假如沒數據,兩個button都是灰色的 5                 if (listDatas.size() == 0) { 6                     btnLeft.setEnabled(false); 7                     btnRight.setEnabled(false); 8                 } else { 9                     switch (v.getId()) {10                     case R.id.queren_btnLeft:11                         leftView();12                         break;13 14                     case R.id.queren_btnRight:15                         rightView();16 17                         break;18                     }19                 }20             }21 22         };


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 三原县| 盐源县| 泾阳县| 黑龙江省| 望奎县| 惠东县| 甘孜县| 浦县| 济南市| 恩施市| 昭觉县| 区。| 平江县| 满城县| 黎平县| 鄢陵县| 太白县| 孟村| 玉山县| 华宁县| 酒泉市| 枣强县| 尼玛县| 日土县| 格尔木市| 西城区| 甘德县| 灌阳县| 郑州市| 柘荣县| 监利县| 乐东| 资源县| 唐海县| 五原县| 白城市| 和政县| 冷水江市| 宁明县| 东乡县| 宁陕县|