Как получить один столбец sqlite и сохранить строки в массив

Я новичок в Android, и я использую Sqlite для хранения массива типа double в столбце с именем «KEY_VALUE».

public long createEntry(Double rates) { 
    ContentValues cv = new ContentValues();
    cv.put(KEY_VALUE, rates);
    return ourDatabase.insert(TABLE, null, cv);
}

Я помещаю данные в столбцы здесь через другой класс

for(i=0;i<37;i++){
    entry.createEntry((theRSSHandler.rates()[i]));
    }

Теперь я хотел бы получить столбец, который я сохранил, и получить каждую строку как элемент массива, я видел и пробовал другие подобные решения, но они не сработали. Вот метод, который я использую, чтобы попытаться получить данные столбца, но он не удался.

public Double[] getData() {
    String[] col = {KEY_VALUE}; 
    Cursor c = ourDatabase.query(TABLE, col, KEY_VALUE , null, null, null, null);
    Double[] result = null;

    if(c != null){
        c.moveToFirst();
    }

    int iVal = c.getColumnIndex(KEY_VALUE);

    for(c.moveToFirst(); !c.isAfterLast(); c.moveToNext()){
        result[c.getPosition()] = c.getDouble(iVal);
    }
    return result;
}

person user1559736    schedule 03.02.2013    source источник
comment
it has failed...как? вы можете показать LogCat?   -  person David M    schedule 03.02.2013
comment
он показывает исключение нулевого указателя   -  person user1559736    schedule 03.02.2013


Ответы (1)


вы пытаетесь поместить значения в массив, который не был инициализирован.

  Double[] result = null;

нужно дополнить чем-то вроде...

  result = new Double[100];

я думаю, вы, вероятно, захотите инициализировать его количеством записей, на которые указывает курсор

  result = new Double[c.count()]; 
person David M    schedule 03.02.2013
comment
я мог бы немного ошибиться в синтаксисе, так как я делаю это по памяти (весь мой хороший код находится в работе). - person David M; 03.02.2013