Android初級教程は大量のデータに対してページを分けて理論の知識を処理します
2538 ワード
ロードするデータが千以上ある場合、ページのロードが遅くなることがあります(データのロードも時間のかかる操作です).そのため、ページングやバッチ表示も考慮します.まずいくつかのページの理論知識を紹介します.具体的にどこで使うかは、後続のブログで更新されます.
ページング情報
1、全部で何個のデータ
2ページあたりの表示数を指定します
3、合計何ページを計算しますか
4,各ページの情報3ページ分のデータをとる
一般的なデータは、データベースに表示されます.上記の理論知識に基づいて、次にデータベースの偽コードをいくつかクエリーします.プロジェクトでページングを使用する場合は、直接使用します.
転載先:https://www.cnblogs.com/wanghang/p/6299637.html
ページング情報
1、全部で何個のデータ
select count(*) from blacktb;
: sql , *
select count( ) from blacktb;
,
2ページあたりの表示数を指定します
: 20
3、合計何ページを計算しますか
int pages = (int)Math.ceil(201 * 1.0 / 20); // 10.05
4,各ページの情報3ページ分のデータをとる
select * from blacktb limit offset ;
select * from blacktb limit , ;
: 3 PageNumber
select * from blacktb limit (3 - 1)*PageNumber,PageNumber
一般的なデータは、データベースに表示されます.上記の理論知識に基づいて、次にデータベースの偽コードをいくつかクエリーします.プロジェクトでページングを使用する場合は、直接使用します.
/**
* @return
*/
public int getTotalRows() {
SQLiteDatabase database = blackDB.getReadableDatabase();
Cursor cursor = database.rawQuery("select count(1) from "
+ BlackTable.BLACKTABLE, null);
cursor.moveToNext();
//
int totalRows = cursor.getInt(0);
cursor.close();//
return totalRows;
}
/**
* @param currentPage
*
* @param perPage
*
* @return
*/
public List getPageDatas(int currentPage, int perPage) {
List datas = new ArrayList();
SQLiteDatabase database = blackDB.getReadableDatabase();
// blacktb (2 + 3) + ""
Cursor cursor = database.rawQuery("select " + BlackTable.PHONE + ","
+ BlackTable.MODE + " from " + BlackTable.BLACKTABLE
+ " limit ?,? ", new String[] {((currentPage - 1) * perPage) + "",perPage + ""});
while (cursor.moveToNext()) {
// ,
BlackBean bean = new BlackBean();
//
bean.setPhone(cursor.getString(0));
//
bean.setMode(cursor.getInt(1));
//
datas.add(bean);
}
cursor.close();//
database.close();//
return datas;
}
/**
* @param perPage
*
* @return
*/
public int getTotalPages(int perPage) {
int totalRows = getTotalRows();
// , ceil , :6.1 7.0
int totalPages = (int) Math.ceil(totalRows * 1.0 / perPage);
return totalPages;
}
転載先:https://www.cnblogs.com/wanghang/p/6299637.html