Android:使用什么而不是游标

时间:2011-01-12 11:56:52

标签: java android foreach

在我的应用程序中,我使用游标从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();
     }

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

2 个答案:

答案 0 :(得分:0)

增强的for循环仅适用于集合,迭代和数组,Cursor不是这些。

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

答案 1 :(得分:0)

您可以按如下方式大大简化此逻辑:

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