将数据从sqlite存储到数组中以绘制线图,Android

时间:2013-05-03 11:10:30

标签: android arrays android-sqlite

我正在从sqlite中的表中检索数据。我存储为datetime的表存储,日期和值。我想要检索的数据并将其放入两个不同的数组中。一个数组用于日期,另外一个用于数值..数据是动态的...意味着它可以添加更多...

下面是我的代码。

 private XYMultipleSeriesDataset getDemoDataset() {

    DBHelper helper = new DBHelper(this);
    database = helper.getReadableDatabase();

    Cursor c = database.rawQuery("select * from " + DBHelper.TABLE_GLUCOSE, null);

    //double[] seriesFirstY = {20,-20,67,180,-45,24,99,-34,-8};
    double[] seriesSecondY = {10,80,-40,-20,135,24,199,-34,80};

    XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
    XYSeries firstSeries = new XYSeries("Ideal Reading");

    while (!c.isAfterLast()) {
        int date = c.getInt((Integer) c.getColumnIndexOrThrow(DBHelper.GLUCOSE_DATE));
        int bbData = c.getInt((Integer) c.getColumnIndexOrThrow(DBHelper.BBDATA));
        firstSeries.add(bbData, date);
        c.moveToNext();
    }
    dataset.addSeries(firstSeries);

    c.close();

    /*XYSeries firstSeries = new XYSeries("Ideal Reading");
    for (int i = 0; i < myArray.length; i++)
        firstSeries.add(i, mStringArray[i]);
    dataset.addSeries(firstSeries);*/

    XYSeries secondSeries = new XYSeries("Your Reading");
    for (int j = 0; j < 9; j++)
        secondSeries.add(j, seriesSecondY[j]);
    dataset.addSeries(secondSeries);
    return dataset;
}

我在

获得了java.lang.nullpointer
android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:203)
 android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:98)
 android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:98)
android.database.sqlite.SQLiteOpenHelper.getReadableDatabase(SQLiteOpenHelper.java:158)

1 个答案:

答案 0 :(得分:0)

您可以使用动态而不是数组的ArrayList。 如果你真的需要一个数组,那么你可以将ArrayList转换为数组。