我对Android比较陌生并且有以下问题。我在设备上有一个本地数据库,我想在其中显示ActivityList中的内容。假设数据库中有一个表“人”,其中包含“姓名,姓氏等”等一般信息。 表中的每一行都应显示为ActivityList中的一个项目。
我知道存在一种适配器,我可以用我的表数据直接填充ActivityList,但是这样做的方法是什么? 是不是更好的是在启动时加载所有数据,然后将它们保存在整个会话中,并在必要时将数据从一个活动传递到另一个活动(或使它们变为静态...),而不是每次更改为时都加载数据另一个活动?
如果我有一个普通的Java应用程序,我会在启动时加载数据,然后只使用加载的对象(至少对于合理的数据集)。
对于Android应用程序也没有意义吗?
我会对每个对我有用的答案进行评价。
谢谢! 斜线
答案 0 :(得分:1)
我会看一下ContentProvider。
您可以使用它来查询数据库,然后使用CursorAdapter在ListView中显示内容。
答案 1 :(得分:1)
如果要使用ListView,则需要使用适配器。所以,这是必须的。您可以从Activity中设置适配器数据。
至于“感觉”问题,它可能是有道理的。但一如既往,这取决于一些事情:
这些数据会在整个申请中使用吗?然后加载一次并在任何地方使用它是绝对有意义的。你如何做到这一点取决于你的需求,静态访问或传递数据,一切都应该有效。
数据库访问总是很昂贵。如果你有很多行,那么从数据库加载进程可能会非常慢。因此,再次加载一次并在任何地方使用都是一个很好的计划。
但是在加载此数据时要小心阻止UI线程。您永远不应该从UI线程访问数据库。而是使用工作线程或AsyncTask。