0

我是 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;
}
4

1 回答 1

1

您正在尝试将值放入尚未初始化的数组中。

  Double[] result = null;

需要跟进类似...

  result = new Double[100];

我想你可能想用光标指向的记录数来初始化它

  result = new Double[c.count()]; 
于 2013-02-03T13:12:49.440 回答