mysql sqlite 分页_sqlite数据库数据的分页

sqlite数据库数据的分页

效果图示例

dcd12c30fd42f659c45fc8dc581e63d3.png

7b95a58f71e90e39920aab21475b42ab.png

a947fc7702e56ae5fc2081f6e4a10408.png

7c9f0fa4616d0c020b4b79fffe2c9c94.png

1、在清单里添加对数据库操作的权限

代码

=================================

2、有2个布局 一个activity_main.xml 一个item_activity.xml

1)activity_main.xml布局文件

代码

android:layout_width="fill_parent"

android:layout_height="fill_parent" >

android:id="@+id/listView_main_titlelist"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:layout_alignParentLeft="true"

android:layout_alignParentTop="true">

android:id="@+id/layout_more"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:background="#fff"

android:textColor="#000"

android:layout_alignParentLeft="true"

android:layout_alignParentBottom="true"

android:onClick="clickButton"

android:visibility="invisible"

android:gravity="center">

android:id="@+id/progressBar1"

style="?android:attr/progressBarStyleSmall"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_marginRight="20dp"/>

android:id="@+id/textView1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="点击加载更多数据..."

android:textSize="30sp"/>

-----------------------------------

item_activity.xml布局文件

代码

android:layout_width="match_parent"

android:layout_height="match_parent" >

android:id="@+id/text_item_listview_id"

android:layout_width="0dp"

android:layout_height="wrap_content"

android:layout_weight="2"

android:text="TextView"

android:textColor="#f00"

android:textSize="40sp" />

android:id="@+id/text_item_listview_name"

android:layout_width="0dp"

android:layout_height="wrap_content"

android:layout_marginLeft="20dp"

android:layout_weight="3"

android:text="TextView"

android:textColor="#00f"

android:textSize="40sp" />

android:id="@+id/text_item_listview_score"

android:layout_width="0dp"

android:layout_height="wrap_content"

android:layout_marginLeft="20dp"

android:layout_weight="3"

android:text="TextView"

android:textColor="#00f"

android:textSize="40sp" />

--------------------------------

3、有2个类 一个工具类 用来对数据库的增删改查操作一个MainActivity类

工具类

代码

public class Sqlite_operate_utils {

private static String DB_PATH = Environment.getExternalStorageDirectory() + File.separator + "stuentinfo.db";

private SQLiteDatabase db;

//构造函数 new 该类的时候 就去找 需要找的 数据库

public Sqlite_operate_utils() {

db = SQLiteDatabase.openDatabase(DB_PATH, null, SQLiteDatabase.OPEN_READWRITE);

}

//查询 数据的 方法1

public Cursor sqlite_select(String content, String[] condition){

return db.rawQuery(content, condition);

}

//查询 数据 的 方法2

public List> sqlite_selectlist(String content, String[] condition){

Log.i("data", "cursor:");

Cursor cursor = db.rawQuery(content, condition);

return cursorToList(cursor);

}

//返回List

public List> cursorToList(Cursor cursor) {

List> list = new ArrayList>();

while(cursor.moveToNext()){//数据库表的 行

Map map = new HashMap();

for(int i = 0;i

map.put(cursor.getColumnName(i), cursor.getString(i));

}

list.add(map);

}

cursor.close();

Log.i("data", "list:" + list.size());

return list;

}

//增删改 的方法

//返回布尔型 方便 查看 数据 操作 是否成功

public boolean executeData(String execute_content, Object[] bindArgs){

try {

if(bindArgs == null){//要绑定占位符 的参数值

db.execSQL(execute_content);

return true;

}else{

db.execSQL(execute_content, bindArgs);

return true;

}

} catch (SQLException e) {

e.printStackTrace();

return false;

}

}

//关闭db

public void destroy(){

if(db != null){

db.close();

}

}

}

==========================

MianActivity类

代码

public class MainActivity extends Activity {

private ListView listview;

private LinearLayout layout_progress;

private Sqlite_operate_utils sql;

private SimpleAdapter adapter;

private List> list_datainfo;

// 分页属性 声明

private int pageNo = 1;// 第几页

private int pageSize = 10;// 每页有多少条数据

private int pageCount;// 总页数

private boolean isbottom;// 用来判断 是否是 底部

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

this.listview = (ListView) this

.findViewById(R.id.listView_main_titlelist);

this.layout_progress = (LinearLayout) this

.findViewById(R.id.layout_more);

sql = new Sqlite_operate_utils();

//计算 数据库 学生信息表的总页数

String content = "select count(*) from studentinfo ";//一行一列 数据

Cursor cursor = sql.sqlite_select(content, null);

cursor.moveToFirst();//移动游标 到一地个位置

int count = cursor.getInt(0);//总记录数

//关闭游标

cursor.close();

pageCount = (int)Math.ceil(count/(double)pageSize);

list_datainfo = getInfo();

adapter = new SimpleAdapter(this, list_datainfo, R.layout.item_listview,

new String[] { "s_sex", "s_age", "s_score" }, new int[] {

R.id.text_item_listview_name,

R.id.text_item_listview_id,

R.id.text_item_listview_score });

listview.setAdapter(adapter);

//listview滚动 事件 监听

listview.setOnScrollListener(new OnScrollListener() {

@Override

public void onScrollStateChanged(AbsListView view, int scrollState) {

if(isbottom){

if(pageCount == pageNo){

Toast.makeText(MainActivity.this, "没有更多数据!!", Toast.LENGTH_SHORT).show();

}else{

layout_progress.setVisibility(View.VISIBLE);

}

}

}

@Override

public void onScroll(AbsListView view, int firstVisibleItem,

int visibleItemCount, int totalItemCount) {

isbottom = ((firstVisibleItem + visibleItemCount) == totalItemCount);

}

});

}

//进度加载 的点击事件 监听

public void clickButton(View view){

if(pageNo

pageNo++;

list_datainfo.addAll(getInfo());

//更新 listview 视图

adapter.notifyDataSetChanged();

}

layout_progress.setVisibility(View.GONE);

}

private List> getInfo() {

List> list = new ArrayList>();

//分页

int start = (pageNo - 1)*pageSize;

String content = "select * from studentinfo limit ?,?";

String[] condition = {start + "",pageSize + ""};

list = sql.sqlite_selectlist(content, condition);

return list;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值