?? paginate.java
字號:
import java.util.ArrayList;
import java.util.Iterator;
/**
*
* @author dailin
*
*/
public class Paginate {
int currentPage = 1; // 當前頁
int totalPages = 0; // 總頁數
int pageRecorders = 5;// 每頁5條數據
int totalRows = 0; // 總數據數
int pageStartRow = 0;// 每頁的起始數
int pageEndRow = 0; // 每頁顯示數據的終止數
boolean hasNextPage = false; // 是否有下一頁
boolean hasPreviousPage = false; // 是否有前一頁
Iterator it;
/**
*
* @param alllist全部數據
* @param nowPage正在看的頁數
* @param action用戶請求(上一頁,下一頁)
* @return
*/
public ArrayList getList(ArrayList alllist, int nowPage, String action) {
ArrayList list = new ArrayList();
// 總記錄數
totalRows = alllist.size();
hasPreviousPage = false;
// 總頁數
if ((totalRows % pageRecorders) == 0) {
totalPages = totalRows / pageRecorders;
} else {
totalPages = totalRows / pageRecorders + 1;
}
// 當前要看頁數
if (action == null || action.equals("null")) { // 第一次讀取數據
currentPage = 1;
} else {
if (action == "nextPage" || action.equals("nextPage")) // 點擊下一頁
{
currentPage = nowPage + 1;
}
if (action == "previousPage" || action.equals("previousPage")) // 點擊上一頁
{
currentPage = nowPage - 1;
}
}
// 判斷有沒有上一頁
if ((currentPage - 1) > 0) {
hasPreviousPage = true;
} else {
hasPreviousPage = false;
}
// 判斷有沒有下一頁
if (currentPage >= totalPages) {
hasNextPage = false;
} else {
hasNextPage = true;
}
// 顯示頁從第幾條到第幾條
if (currentPage == 1) {
if (totalRows < pageRecorders) {
pageStartRow = 0;
pageEndRow = totalRows;
} else {
pageStartRow = 0;
pageEndRow = pageRecorders;
}
}else{
if (currentPage * pageRecorders < totalRows) {// 判斷是否為最后一頁
pageEndRow = currentPage * pageRecorders;
pageStartRow = pageEndRow - pageRecorders;
} else {
pageEndRow = totalRows;
pageStartRow = pageRecorders * (totalPages - 1);
}
}
list = new ArrayList(alllist.subList(pageStartRow, pageEndRow));
// list=(ArrayList) alllist.subList(pageStartRow, pageEndRow);
/*
* for (int i = pageStartRow; i < pageEndRow; i++) {
*
* list.add(alllist.get(i));
* }
*/
return list;
}
/**
*
* @return
*/
public int getCurrentPage() {
return currentPage;
}
/**
*
* @return
*/
public int getTotalRows() {
return totalRows;
}
/**
*
* @return
*/
public int getTotalPages() {
return totalPages;
}
public boolean isHasNextPage() {
return hasNextPage;
}
public boolean isHasPreviousPage() {
return hasPreviousPage;
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -