Java 如何在不占用大量加载时间和ram的情况下滚动浏览大型数据库

Java 如何在不占用大量加载时间和ram的情况下滚动浏览大型数据库,java,android,sql,database,sqlite,Java,Android,Sql,Database,Sqlite,我正在制作一个应用程序,以类似iTunes的视图显示音乐。它是从SQLite数据库创建的tableLayout。我在启动时使用asyncTask将歌曲列表加载到表中。这对0-100首ish歌曲非常有效,但是太多,启动时间太长,ram使用量也很大。一次将整个数据库加载到ram中感觉非常不必要,即使在单独的线程上也是如此,因为一次只能看到几行。如何在用户滚动时动态加载和卸载此视图中的行?您正在查找,并且提供了这些机制来精确地执行您正在查找的操作。您正在查找,并且提供了这些机制来精确地执行您正在查找的

我正在制作一个应用程序,以类似iTunes的视图显示音乐。它是从SQLite数据库创建的tableLayout。我在启动时使用asyncTask将歌曲列表加载到表中。这对0-100首ish歌曲非常有效,但是太多,启动时间太长,ram使用量也很大。一次将整个数据库加载到ram中感觉非常不必要,即使在单独的线程上也是如此,因为一次只能看到几行。如何在用户滚动时动态加载和卸载此视图中的行?

您正在查找,并且提供了这些机制来精确地执行您正在查找的操作。

您正在查找,并且提供了这些机制来精确地执行您正在查找的操作。

您是否可以更具体一些?我现在正在使用一个游标-cursor c=myDB.rawQuery(“SELECT*FROM”+TableName+“ORDER BY”+params[0],null);如何使用游标适配器或修复游标来执行此操作?@ghostbust555:在进行DB查询后,您如何处理
游标中的数据?如果(c!=null){do{将c的信息添加到表行并将表行添加到表布局}而(c.moveToNext())}@ghostbust555:您使用表布局而不是
列表视图的原因是什么?对于后者,您只需使用
CursorAdapter
并覆盖适配器的
getViewValue
方法。一次生成的
列表视图
项目数量有限,因此即使使用
光标
处理大量项目,也非常快。我尝试在列表视图中创建它,但无法使其工作:(我想我会再试一次,谢谢你的帮助。但是,有没有办法在滚动视图中使用tableLayout实现同样的效果?你能更具体一点吗?我现在使用的是一个游标-游标c=myDB.rawQuery(“SELECT*FROM”+TableName+“ORDER BY”+params[0],null);如何使用游标适配器或修复游标来执行此操作?@ghostbust555:在进行DB查询后,您如何处理
游标中的数据?如果(c!=null){do{将c的信息添加到表行并将表行添加到表布局}而(c.moveToNext())}@ghostbust555:您使用表布局而不是
列表视图
?对于后者,您只需使用
光标或适配器
,并覆盖adaper的
getViewValue
方法。在任何时候生成的
列表视图
项数量有限,即使使用
光标
处理大量项目。我试图在ListView中创建它,但无法使其正常工作:(我想我会再试一次,感谢您的帮助。但是,有没有办法在滚动视图中使用tableLayout实现同样的效果?