Android: SQLite, небольшая проблема со вставкой и запросом - PullRequest
1 голос
/ 15 апреля 2011

Я разрабатываю свое первое приложение, которое содержит базу данных SQLite, содержащую таблицу ANIMAL со столбцами _id, animal_name, animal_bio.

. Пользователь представлен с именами животных вListView;Выбор животного приведет его / ее к странице, где он / она сможет просматривать биографию животных.

У меня проблема:

Когда я добавляю биографию каждого животного вБД - без ошибок.
Однако при запуске приложения ListView (ранее работавший) отображает пустой экран.

Мой код вставки:

public long populateDB(){       
    ContentValues initialValues = new ContentValues();
    long[] rowIds = new long[animalName.length];

    // Populate the animal table
    for(int i = 0; i < animalName.length; i++){
        initialValues.put(KEY_ANIMALNAME, animalName[i]);
        initialValues.put(KEY_BIOGRAPHY, bio[i]);
        rowIds[i] = qmDB.insert(ANIMAL_TABLE, null, initialValues);
    }
    return rowIds[0];
}

И создание базы данныхутверждение

private static final String DATABASE_CREATE = 
            "create table " + ANIMAL_TABLE +
            " (_id integer primary key autoincrement, " + 
            "animal_name text not null, " +
            "biography text not null);"; 

Я не вижу ничего плохого в этом коде, поэтому, если у кого-то есть какие-либо предложения, я был бы очень признателен.

РЕДАКТИРОВАТЬ: Получение кода животных

public Cursor retrieveAnnimals(){
    return qmDB.query(ANIMAL_TABLE, new String[] {
            KEY_ROWID,
            KEY_ANIMALNAME,
            },
            null,
            null,
            null,
            null,
            ORDER_BY_NAME);
}

Вызывая создание и вставку из приложения, это происходит в ListActivity, называемом ListAnimals:

dbm = new MyDBManager();
dbm.open();
dbm.deleteTable();
dbm.populateTable();
myCursor = dbm.retrieveAnimals();
...