如何加载数据以使它们在ActivityList中可见?

时间:2011-09-26 16:46:11

标签: android

我对Android比较陌生并且有以下问题。我在设备上有一个本地数据库,我想在其中显示ActivityList中的内容。假设数据库中有一个表“人”,其中包含“姓名,姓氏等”等一般信息。 表中的每一行都应显示为ActivityList中的一个项目。

我知道存在一种适配器,我可以用我的表数据直接填充ActivityList,但是这样做的方法是什么? 是不是更好的是在启动时加载所有数据,然后将它们保存在整个会话中,并在必要时将数据从一个活动传递到另一个活动(或使它们变为静态...),而不是每次更改为时都加载数据另一个活动?

如果我有一个普通的Java应用程序,我会在启动时加载数据,然后只使用加载的对象(至少对于合理的数据集)。

对于Android应用程序也没有意义吗?

我会对每个对我有用的答案进行评价。

谢谢! 斜线

2 个答案:

答案 0 :(得分:1)

我会看一下ContentProvider

您可以使用它来查询数据库,然后使用CursorAdapter在ListView中显示内容。

答案 1 :(得分:1)

如果要使用ListView,则需要使用适配器。所以,这是必须的。您可以从Activity中设置适配器数据。

至于“感觉”问题,它可能是有道理的。但一如既往,这取决于一些事情:

这些数据会在整个申请中使用吗?然后加载一次并在任何地方使用它是绝对有意义的。你如何做到这一点取决于你的需求,静态访问或传递数据,一切都应该有效。

数据库访问总是很昂贵。如果你有很多行,那么从数据库加载进程可能会非常慢。因此,再次加载一次并在任何地方使用都是一个很好的计划。

但是在加载此数据时要小心阻止UI线程。您永远不应该从UI线程访问数据库。而是使用工作线程或AsyncTask。