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 に答える