2011-01-12 68 views
0

在我的应用程序使用游标得到的SQLite数据库中的信息是这样的:安卓:用什么来代替光标

Cursor contacts = dataBase.select("SELECT _idContact FROM Contacts"); 

    if (contacts.getCount() > 0) { 

    if (IMLayout.getVisibility() == View.VISIBLE) { 


    int k = contacts.getCount(); 
    for (int j = 0; j < k; j++) { 
    if (j == 0) { 
     contacts.moveToFirst(); 
    } else { 
     contacts.moveToNext(); 
    } 

我想是优化“为”使用增强的for循环。为此,我必须使用数组或其他,但不使用游标,因为游标不适用于Enhanced for循环。如何将光标转换为arrayList?

回答

0

增强型for-loop仅适用于集合,iterables和数组,而Cursor不属于这些内容。

你只需要使用提供的方法,就像你现在所做的那样。或者,你必须将光标的内容吸收到一个集合中,但是你只是为自己做更多的工作。

+0

好的,谢谢是一个很大。我在想这可能是优化这个的可能性。 – Laura 2011-01-12 12:05:04

0

如下您可以大大简化这一逻辑:

Cursor contacts = dataBase.select("SELECT _idContact FROM Contacts"); 
while (contacts.moveToNext()) { 
    // do stuff with this database entry 
} 
+0

好吧,我会试一试;)谢谢 – Laura 2011-01-12 12:16:16