Android 从数据库填充achartengine图

Android 从数据库填充achartengine图,android,database,achartengine,Android,Database,Achartengine,我一直在研究这个问题,但没有发现太多——可能是因为它非常简单。我正试图从我拥有的光标填充agraphengine中的条形图。我已经确认光标向后拉了30行(预期),但我不知道从那里开始往哪里走 这是我正在填充的数组: public static List<double[]> getChartData(int iDays){ List<double[]> values = new ArrayList<double[]>(); 下面是调用函数的内

我一直在研究这个问题,但没有发现太多——可能是因为它非常简单。我正试图从我拥有的光标填充agraphengine中的条形图。我已经确认光标向后拉了30行(预期),但我不知道从那里开始往哪里走

这是我正在填充的数组:

    public static List<double[]> getChartData(int iDays){
    List<double[]> values = new ArrayList<double[]>(); 
下面是调用函数的内容--来自achartengine:

 public Intent execute(Context context) {
    String[] titles = new String[] { "total" };
   List<double[]> values = new ArrayList<double[]>(DBhelper.getChartData(30));
values.addAll(DBhelper.getChartData(30));   
    int[] colors = new int[] { Color.BLUE};
    XYMultipleSeriesRenderer renderer = buildBarRenderer(colors);
    setChartSettings(renderer, "Drinks in the past " + DBhelper.getChartData(30) + " days", "Date", DBhelper.CS_YDrinks, 0,
        /*y axis*/32, 0, /*x axis*/10, Color.GRAY, Color.LTGRAY);
    renderer.setXLabels(12);
    renderer.setYLabels(10);
    renderer.setDisplayChartValues(true);
    renderer.setXLabelsAlign(Align.LEFT);
    renderer.setYLabelsAlign(Align.LEFT);
    // renderer.setPanEnabled(false);
    // renderer.setZoomEnabled(false);
    renderer.setZoomRate(1.1f);
    renderer.setBarSpacing(0.5);
    return ChartFactory.getBarChartIntent(context, buildBarDataset(titles, values), renderer,
        Type.STACKED);
公共意图执行(上下文){
字符串[]标题=新字符串[]{“总计”};
列表值=新的ArrayList(DBhelper.getChartData(30));
values.addAll(DBhelper.getChartData(30));
int[]colors=newint[]{Color.BLUE};
XYMultipleReseriesRenderer渲染器=构建渲染器(颜色);
setChartSettings(渲染器,“过去的饮料”+DBhelper.getChartData(30)+“天”,“日期”,DBhelper.CS_YDrinks,0,
/*y轴*/32,0,/*x轴*/10,Color.GRAY,Color.LTGRAY);
setXLabels(12);
1.setYLabels(10);
renderer.setDisplayChartValues(true);
renderer.setxlabelsallign(Align.LEFT);
renderer.setYLabelsAlign(Align.LEFT);
//renderer.setPanEnabled(false);
//renderer.setZoomeEnabled(false);
渲染器。setZoomRate(1.1f);
1.setbarspace(0.5);
返回ChartFactory.getBarChartIntent(上下文、buildBarDataset(标题、值)、渲染器、,
类型(堆叠);

症状是它似乎只会从数组列表中提取第一个数字,因为它只会绘制一个条形图。任何建议都将不胜感激。

您需要输入相应的值,以匹配字符串和颜色数组中的每个条形图。您可能只看到一个标题为“total”的蓝色条形图.

您以一种奇怪的方式使用buildBarDataset,我猜您是从示例中获取的?看起来您已经对其进行了修改?以什么方式?我猜buildBarDataset返回多个数据集,每个数据集中都有每个值。这可能不是您想要的。
 public Intent execute(Context context) {
    String[] titles = new String[] { "total" };
   List<double[]> values = new ArrayList<double[]>(DBhelper.getChartData(30));
values.addAll(DBhelper.getChartData(30));   
    int[] colors = new int[] { Color.BLUE};
    XYMultipleSeriesRenderer renderer = buildBarRenderer(colors);
    setChartSettings(renderer, "Drinks in the past " + DBhelper.getChartData(30) + " days", "Date", DBhelper.CS_YDrinks, 0,
        /*y axis*/32, 0, /*x axis*/10, Color.GRAY, Color.LTGRAY);
    renderer.setXLabels(12);
    renderer.setYLabels(10);
    renderer.setDisplayChartValues(true);
    renderer.setXLabelsAlign(Align.LEFT);
    renderer.setYLabelsAlign(Align.LEFT);
    // renderer.setPanEnabled(false);
    // renderer.setZoomEnabled(false);
    renderer.setZoomRate(1.1f);
    renderer.setBarSpacing(0.5);
    return ChartFactory.getBarChartIntent(context, buildBarDataset(titles, values), renderer,
        Type.STACKED);