Как я могу получить данные из базы данных SQLITE в массив в Android? - PullRequest
3 голосов
/ 30 января 2011

Уверен, что это легко, но я запутался во всех примерах, которые адаптируют данные, возвращаемые курсором, в разные представления. Я просто хочу запустить rawquery и поместить каждый элемент данных, возвращаемых в массив с плавающей точкой (чтобы я мог добавить их позже). Что мне нужно для этого использовать? Спасибо

Ответы [ 2 ]

9 голосов
/ 30 января 2011

У вас все еще будет курсор при запросе к вашей базе данных, но как только вы получите курсор, вы можете выполнить итерацию по нему, извлекая нужные значения в массив, например:

DbAdapter db = new DbAdapter(mContext);
    int columnIndex = 3; // Whichever column your float is in.
    db.open();
    Cursor cursor = db.getAllMyFloats();
    float[] myFloats = new float[cursor.getCount()-1];

    if (cursor.moveToFirst())
    {                       
        for (int i = 0; i < cursor.getCount(); i++)
        {
            myFloats[i] = cursor.getFloat(columnIndex);
            cursor.moveToNext();
        }           
    }
    cursor.close();
    db.close();

    // Do what you want with myFloats[].
3 голосов
/ 08 июля 2011

Не минус 1 в float[] myFloats = new float[cursor.getCount()-1];, потому что (int i = 0) или я начинаю с 0. Если вы используете его, появится Java.lang.IndexOutOfBoundsException. Вам нужен индекс массива до [cursor.getCount()], а не до [cursor.getCount()-1]. Таким образом, правильная вещь float[] myFloats = new float[cursor.getCount()];

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...