0

我正在检查以将我最喜欢的自己的 Promotions 对象放入数组中。我试图这样做(来自我的 PromotionsBDD 类,该类控制我的 SQLite 数据库中的表促销):

public ArrayList<Promotion> getListPromotionsFavorites()
    {
        String[] columns = new String[] {"ID", "RATING", "TITLE", "COMPANY_ID","AVAILABLEDATE", "DESCRIPTION", "SETONFAVORITE"};

        Cursor objCursor = bdd.query(TABLE_PROMOTIONS, columns,null,null,null,null,null,null);//requete de récupération de la liste

        int id = objCursor.getColumnIndex("ID");
        int rating = objCursor.getColumnIndex("RATING");
        int title = objCursor.getColumnIndex("TITLE");
        int companyid = objCursor.getColumnIndex("COMPANY_ID");
        int availabledate = objCursor.getColumnIndex("AVAILABLEDATE");
        int description = objCursor.getColumnIndex("DESCRIPTION");
        int setonfavorite = objCursor.getColumnIndex("SETONFAVORITE");

        ArrayList<Promotion> promoFavoriteArray = new ArrayList<Promotion>();
        objCursor.moveToFirst();// position sur la première ligne

        if (objCursor != null) 
        {
            if (objCursor.isFirst())
            {
                int i = 0;
                do 
                {
                    String resultsetonfavorite = objCursor.getString(setonfavorite);
                    if (resultsetonfavorite.equals("true"))
                    {
                        i++;
                        String resultid = objCursor.getString(id);
                        String resultrating = objCursor.getString(rating);
                        String resultitle = objCursor.getString(title);
                        int resultcompanyid = objCursor.getInt(companyid);
                        String resultavailbledate = objCursor.getString(availabledate);
                        String resultdescription = objCursor.getString(description);

                        Promotion promo = new Promotion(resultid, resultrating, resultitle, 
                                resultcompanyid,resultavailbledate,resultdescription, resultsetonfavorite);
                        promoFavoriteArray.add(promo);
                        objCursor.moveToNext();//positionnement sur le suivant
                    }
                    else
                        i++;
                }
                while(objCursor.isLast());
            }
        }

    objCursor.deactivate();
    objCursor.close();
    return promoFavoriteArray;
}

它只是返回给我一个顶行数组..有人知道怎么做吗?

4

2 回答 2

1

如果要检查表中是否有记录。你可以使用这个。

Cursor cursor=sqLiteDatabase.rawQuery("select * from table limit 1", null);
        if (cursor.moveToNext()) {
            return true;
        }
        return false;

它只会返回记录在案。

于 2013-09-30T02:00:52.337 回答
0

换行

while(objCursor.isLast());

while(!objCursor.isLast());
于 2012-08-12T16:54:07.687 回答