2015-12-09 4 views
0

Я работаю над небольшим Android-приложением для игры EVE.Android SQLite не возвращает список всех строк

При работе на активность для добавления новых персонажей я создал себе класс для работы с базой данных всех операций CRUD и этажерки, которые вы можете взглянуть на here, но самое главное, что моя проблема в том, что getAllCharacters() метод возвращает и пустой список.

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

Что вы хотите добавить в список 'characterList'? Почему это не пусто? – gonzo

+0

Благодарим вас за то, что он еще раз доказывал мне, что писать код без сна не стоит. Иногда вам нужны свежие глаза для таких глупых проблем. – dubplay

ответ

-1

Пожалуйста, добавьте следующий код

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)); 

     // add following 
     characterList.add(character); 

    } while (cursor.moveToNext()); 
} 

Вы создаете объект характера, но промахнулся, чтобы добавить его в ArrayList то есть. в characterList, поэтому он возвращает пустой список.

0

Вы забыли добавить свой characterList после создания переменной character в разделе do. Добавьте characterList.add(character); в свой do в конце, и вы должны быть хорошими.

Надеюсь, это поможет.

Смежные вопросы