当使用ArrayList从SQLite检索数据时,我的大小总是为0

时间:2016-09-06 15:32:21

标签: java android sqlite android-sqlite

我正在尝试使用ArrayList检索数据,但我做错了。没有错误,但我总是得到大小为0

以下是我用来从数据库中检索数据的方法:

public List<Topic> getTopics() {
    List<Topic> topics = new ArrayList<>();

    SQLiteDatabase database = this.getReadableDatabase();
    Cursor cursor = database.query(TABLE_NAME,
            new String[] { KEY_ID,
                    KEY_TOPIC_USER_ID,
                    KEY_TOPIC_USER_NAME,
                    KEY_TOPIC_IMAGE,
                    KEY_TOPIC_LIKES,
                    KEY_DATE}, null, null, null,
            null, null);

    while (cursor.moveToNext()) {
        Topic topic = new Topic();
        topic.setId(cursor.getInt(0));
        topic.setUserId(cursor.getString(1));
        topic.setName(cursor.getString(2));
        topic.setPostImage(cursor.getString(3));
        topic.setNumOfLikes(cursor.getInt(4));
        topic.setCreatedTime(loadDate(cursor, 5));
    }

    cursor.close();
    database.close();

    return topics;
}

这些是用于存储我的日期的实用方法:

public static Long persistDate(Date date) {
    if (date != null) {
        return date.getTime();
    }
    return null;
}

public static Date loadDate(Cursor cursor, int index) {
    if (cursor.isNull(index)) {
        return null;
    }
    return new Date(cursor.getLong(index));
}

0 个答案:

没有答案