我有大约100个计划存储在数据库中,需要根据需求显示基于Listview,例如每周,下周,下个月,超时期限等......
在启动应用程序时加载所有计划并根据用户在数组适配器中选择的选项(每周,过期,每月等等)显示它们是否合适?或者在运行时使用查询,从DB获取结果并使用cusor使用cusoradapter在listview上加载数据?
哪种方法有效?我觉得查询DB总是难以操作?这是真的吗?。
答案 0 :(得分:12)
在您的情况下,{I}更适合存在数据库,因为它不会将所有记录加载为CursorAdapter
。它仅加载可见记录或您正在查询的记录。以下是CursorAdapter的文档:
将数据从Cursor公开给ListView小部件的适配器。
Cursor必须包含名为“_id”的列,否则此类将不起作用。此外,如果合并的游标在“_id”列中具有重叠值,则使用MergeCursor与此类不起作用。
从Content provider的文档开始,所以它可能对你没用。
如果使用完全在您自己的应用程序中,则不需要提供程序来使用SQLite数据库。
您可以选择ArrayAdapter
而不是CursorAdapter
。
答案 1 :(得分:0)
更好地使用CursorLoader
CursorLoader
在后台针对ContentProvider运行异步查询,并将结果返回到调用它的Activity或FragmentActivity。这允许Activity或FragmentActivity在查询正在进行时继续与用户交互。
加载程序 在Android 3.0中引入,加载程序可以轻松地在活动或片段中异步加载数据。