列表视图中的分页

时间:2013-02-21 07:16:41

标签: android listview pagination android-sqlite

提前致谢。

我正在开发一个汽车评论应用程序,用户可以登录并显示数据库中的所有评论。所有数据首先存储在MYSQL数据库中。我使用json连接到MYSQL数据库和SQLiteDatabase。但问题是,登录应用程序屏幕后巨大的没有。数据来自服务器,它正在我们的SQLite数据库中插入。

之后,它将从数据库中检索并在列表视图中显示在应用程序屏幕中,显示列表视图中的所有数据需要更长的时间。在这种情况下,我使用SimpleCursorAdapter从数据库中检索所有数据。

有没有像分页这样的方法来更快地进行数据检索。 请提供一些源代码帮助我。

4 个答案:

答案 0 :(得分:3)

您可以使用以下内容:

  • 第1页:

    SELECT * FROM YOUR_TABLE LIMIT 20 OFFSET 0
    
  • 第2页:

    SELECT * FROM YOUR_TABLE LIMIT 20 OFFSET 20
    

参考:http://sqlite.org/lang_select.html

答案 1 :(得分:3)

您可以使用Asynchronous任务的概念以及SimpleCursorAdapters。

“AsyncTask可以正确,轻松地使用UI线程。该类允许执行后台操作并在UI线程上发布结果,而无需操纵线程和/或处理程序。”

以下是您可以做的事情:

1)仅检索第一个查询中的第1个10/15项。 2)将另一个查询作为后台任务触发,而用户正在检出前10/15项。

这肯定会让用户体验更快

答案 2 :(得分:1)

使用LIMIT中的MYSQL关键字,您可以实现分页。

LIMIT允许您控制查询返回的行数:

示例:

显示前10条记录

SELECT * FROM Student LIMIT 10    //for first time

显示10到20之间的行

SELECT *FROM Student LIMIT 9, 10 //after showing the records first time

LIMIT适用于SQLiteDatabase

答案 3 :(得分:1)

  

如果有人已经实施,请提供有关如何实施分页的逻辑/示例源代码。

请参阅CommonsWare EndlessAdapter