Android SQLite不返回所有行的列表

时间:2015-12-09 14:32:35

标签: java android sqlite android-sqlite

我正在开发一款适用于游戏EVE的小型Android应用。

在处理添加新字符的活动时,我自己创建了一个类,用于处理所有CRUD操作和诸如此类的数据库,您可以查看here,但最重要的是我的问题是getAllCharacters()方法返回并清空List。

public List<Character> getAllCharacters() {
    List<Character> characterList = new ArrayList<Character>();
    String selectQuery = "SELECT * FROM " + TABLE_CHARACTERS;
    SQLiteDatabase db = this.getWritableDatabase();
    Cursor cursor = db.rawQuery(selectQuery, null);

    if (cursor.moveToFirst()) {
        do {
            Character character = new Character();
            character.set_id(Integer.parseInt(cursor.getString(0)));
            character.set_apiKey(cursor.getString(1));
            character.set_keyId(cursor.getString(2));
        } while (cursor.moveToNext());
    }
    return characterList;
}

代码本身是否在方法中,我使用它的方式是

DatabaseHandler db = new DatabaseHandler(getApplicationContext());
List<Character> list = db.getAllCharacters();

当我尝试拨打toString()时,我会将[]作为值。

我可以看到正在创建数据库的条目,如here所示。

欢迎任何帮助,欢呼。

2 个答案:

答案 0 :(得分:0)

characterList部分中创建character变量后,您忘记添加到do。最后在characterList.add(character);内添加do即可。

希望这会有所帮助。

答案 1 :(得分:-1)

请添加以下代码

'08'

您正在创建角色对象,但错过了将其添加到ArrayList即。在characterList中,这就是为什么它返回空列表。