在创建listview活动之前预先创建行视图?

时间:2011-04-02 08:22:15

标签: android listview tabs listactivity tabview

我有一个活动,每个活动都有两个标签和一个列表视图。我想非常快速地加载和打开活动。我担心填充两个列表选项卡会导致应用程序在该活动打开时滞后。我正在考虑在我的应用程序的启动画面中从我的数据库加载数据并创建一个视图数组,然后只要启动该活动就将它们放到listviews上。这值得努力吗?我似乎无法找到一种简单的方法来做这样的事情。我假设我需要自定义数组适配器。有没有人有这样的经历呢?或者你是否只是建议坚持使用onCreate()中的游标适配器标准?

1 个答案:

答案 0 :(得分:0)

问题是什么原因导致你需要快速加载它们。通常,可以非常快速地从数据库中读取项目。从来没有在AsyncTask中执行此操作,因此您不会使用此操作阻止UI线程。

另一点是,如果要在ListView中显示数据库中的项目,则不应立即读取所有项目并将它们放入绑定到列表的数组中。相反,您应该使用从数据库查询中获得的Cursor并将其绑定到SimpleCursorAdapterCursorAdapter,然后绑定到ListView。 CursorAdapters经过优化,可根据需要从Cursor读取数据。请记住,在Android上创建对象是一项昂贵的操作,如果不必要,应该避免。因此,如果您的列表非常大并且用户正确无法始终滚动整个列表,那么为什么要预加载所有项目并为其创建视图?

您当然可以在启动画面期间预先查询数据库,并将返回的游标存储在某个地方,直到您需要它们为止。

但正如我在开始时所说,我不知道你的申请是做什么的,所以很难说是否值得付出努力。