2010-02-13 57 views
0

Iam试图让我的活动列表更有效。 我在我的应用程序中有一个活动列表,每次调用时它都会收集一些信息并将其显示在屏幕上(如列表)。有效活动列表

so basiclly每次你完成并重新调用该列表,它的调用onCreate ..一次又一次.. 我的问题在这里是与我试图减少配置!

例如我有一个Arraylist,每次在我的活动列表的onCreate方法分配,以及更多的分配,我做onCreate。

我发现它非常缓慢我的程序,我的程序非常不稳定,我试图达成一些表演...任何想法我怎么能避免这onCreate每次我重新打电话给我的活动列表? mybe减少重新分配的另一种技术? 谢谢, 伊丹。

+0

为什么您的活动多次启动? – JRL 2010-02-13 13:05:50

+0

它是一个包含项目列表的屏幕,因此根据目的,您可以多次输入和退出该屏幕... – rayman 2010-02-13 13:46:31

+0

Mybe我应该保存已分配的对象,因此每次输入ListActiviy屏幕时都不需要重新分配对象。必须有一种方法来避免或至少有一些技术绕过它,因为有一些对象可以分配一次,而不是每次我们进入屏幕时重新分配它们。 谢谢,雷。 – rayman 2010-02-13 15:22:48

回答

0

如果你从SQLite的获取数据放在一个ListView,作为Cursor返回数据,并创建一个自定义CursorAdapter与列表工作。它会比返回对象更有效率(我假设你正在做的)。

+0

但是我用游标返回数据!由光标我从我的数据库逐行检索数据,并将它放入一个新的对象中,每个对象都象征着项目列表中的项目。 所以现在我们得到了另一个对象数组列表。现在我必须添加到我的适配器列表中的对象列表(逐个对象)。并用那个适配器构建我的getView函数......这就是我在屏幕上看到的列表。 生病了:我们在这里得到了两个数组列表.. 项目ArrayList ,和适配器ArrayAdapter heh猜这里有什么不对吗? 谢谢。 ray。 – rayman 2010-02-13 17:56:33

+0

啊,我明白你在做什么。你能将你的ArrayAdapter转换成CursorAdapter吗?这样,您不需要创建中间数组对象 - CursorAdapter可以直接从Cursor中读取。 – 2010-02-13 21:31:58

+0

Okie,它工作正常,但现在你明白我做了什么,mybe你可以帮助并告诉我,我将如何检索它的复选框已被检查的项目?当我使用ArrayAdapter时,ive将每一行建模为对象,并且我可以遍历所有对象,并通过一些名为'checked'的本地动词检查是否为true/false,但现在,由于我没有将数据库建模为对象,因此将如何我会浏览所有项目,并检查是否已选中“复选框”按钮。谢谢,雷。 – rayman 2010-02-14 01:39:14

2

而不是使ArrayList静态,您应该保留在模型中的数据。您可能希望为模型使用Singleton模式,您还可以创建一个扩展Application的类,使您的应用程序使用您的Application类而不是默认值,并将列表数据保留在那里。在清单文件中,将以下几行指向您的应用程序类。

<application android:name=".MyApplicationClass" android:icon="@drawable/icon" android:label="@string/app_name"> 

如果使用应用程序方法,然后从ListActivity调用getApplication并检查数据是否已从数据库加载。