android cardview只显示最后一次合适的次数

时间:2016-02-25 13:20:28

标签: android-cardview android-database

我是android和java的新手。 我做了一个cardview并用一个简单的循环填充它:

private ArrayList<DataObject> getTheData(){
    ArrayList res = new ArrayList<DataObject>();

    for (int index = 0; index < 5; index++){
        DataObject obj = new DataObject("shit","happen");
        res.add(index,obj);
    }
    return res;
}

它奏效了。现在我创建了一个数据库,并希望用这些数据填充它。所以我有这个:

    public ArrayList<DataObject> getData() {
    SQLiteDatabase db = this.getReadableDatabase();
    ArrayList res = null;
    try {
        res = new ArrayList<DataObject>();
        String selectQuery = "SELECT * FROM quotes a LEFT JOIN authors b ON b.author_id=a.quote_author";

        Cursor cursor = db.rawQuery(selectQuery, null);

        if (cursor != null) {
            if (cursor.moveToFirst()) {
                do {

                    Log.d("CHECKDB",cursor.getString(cursor.getColumnIndex("first_name")) + " " + cursor.getString(cursor.getColumnIndex("last_name")));
                    Log.d("CHECKDB2",cursor.getString(cursor.getColumnIndex("quote_text")));
                    DataObject obj = new DataObject(
                            cursor.getString(cursor.getColumnIndex("first_name")) + " " + cursor.getString(cursor.getColumnIndex("last_name")),
                            cursor.getString(cursor.getColumnIndex("quote_text"))
                    );
                    res.add(obj);

                } while (cursor.moveToNext());

            }

        }
    } catch (SQLiteException se) {
        Log.e(getClass().getSimpleName(), "Could not create or Open the database");
    } finally {
        if (db != null)
            db.close();
    }


    return res;
}

日志显示所有结果,但是当我运行应用程序时,我得到最后一次结果的次数。在这种情况下,我的数据库中有4个引号,所以我看到4个,但最后一个4次。

拜托,因为我是新手,我们将不胜感激。

1 个答案:

答案 0 :(得分:0)

问题是我的dataobject属性设置为静态