2011-01-12 67 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