【问题标题】:AChartEngine CombinedXYChart wrong 4th parameter foundAChartEngine CombinedXYChart 发现第 4 个参数错误
【发布时间】:2016-01-29 10:26:56
【问题描述】:

我的组合图表有点问题。 3 年前,我用 Eclipse 做了同样的事情并使用了一个 jar 库。我使用依赖项将我的代码复制到了 android Studio,但现在它不起作用。我无法让它工作。

我会发布我的整个代码,然后我会标记问题。

public void createChart()
{
    XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
    XYMultipleSeriesRenderer multiRenderer = new XYMultipleSeriesRenderer();
    final Bundle extras = this.getIntent().getExtras();
    couchdurations = extras.getLongArray("couchtimes");
    perstdurations = extras.getLongArray("persttimes");
    //ToDo Sqlite noch ergänzen
    XYSeries couchseries = new XYSeries("CouchBase");
    XYSeriesRenderer couchRenderer = new XYSeriesRenderer();
    XYSeries perstseries = new XYSeries("PerstDB");
    XYSeriesRenderer perstRenderer = new XYSeriesRenderer();

    couchRenderer.setColor(Color.RED);
    couchRenderer.setPointStyle(PointStyle.X);
    couchRenderer.setFillPoints(false);
    couchRenderer.setLineWidth(2);
    couchRenderer.setDisplayChartValues(false);

    perstRenderer.setColor(Color.BLUE);
    perstRenderer.setPointStyle(PointStyle.X);
    perstRenderer.setFillPoints(false);
    perstRenderer.setLineWidth(2);
    perstRenderer.setDisplayChartValues(false);

    multiRenderer.addSeriesRenderer(couchRenderer);
    multiRenderer.addSeriesRenderer(perstRenderer);
    multiRenderer.setYAxisMin(0.0);
    multiRenderer.setYAxisMax(10000000.0);
    multiRenderer.setXAxisMax(60000.0);
    multiRenderer.setLabelsTextSize(40);
    multiRenderer.setLegendTextSize(40);

    for(int i = 0; i < couchdurations.length; i++)
    {
        couchseries.add(couchdurations[i], datasizes[i]);
        perstseries.add(perstdurations[i], datasizes[i]);
    }
    dataset.addSeries(couchseries);
    dataset.addSeries(perstseries);

    // Getting a reference to LinearLayout of the MainActivity Layout
    LinearLayout chartContainer = (LinearLayout) findViewById(R.id.chart_container);

    // Specifying chart types to be drawn in the graph
    // Number of data series and number of types should be same
    // Order of data series and chart type will be same
    String[] types = new String[dataset.getSeriesCount()];
    for(int i = 0; i < (dataset.getSeriesCount()); i++)
    {
        types[i] = LineChart.TYPE;
    }
    // Creating a combined chart with the chart types specified in types array


mChart = (GraphicalView) ChartFactory.getCombinedXYChartView(getBaseContext(), dataset, multiRenderer, types);
    // Adding the Combined Chart to the LinearLayout

    chartContainer.addView(mChart);
}

问题出在下面一行:

mChart = (GraphicalView) ChartFactory.getCombinedXYChartView(getBaseContext(), dataset, multiRenderer, types);

我总是得到第四个参数错误的错误。但我在 3 年前在另一个 android 应用程序中使用了相同的代码。 Error Screenshot 1 Error Screenshot 2 您可以在所附图片中看到错误消息。 第 4 个参数类型错误。找到'java.lang.String[]',需要:'org.achartengine.chart.CombinedXYChart.XYCombinedChartDef[]'

谁能帮我解决这个问题?不知道怎么解决。

【问题讨论】:

  • 您遇到的错误是什么?
  • 第四个参数类型错误。找到 'java.lang.String[]', required: 'org.achartengine.chart.CombinedXYChart.XYCombinedChartDef[]' 你可以在附加的截图中看到它
  • 我没有看到任何屏幕截图。无论如何,API 已经改变,所以只要按照错误所说的去做,将 String[] 更改为 CombinedXYChart 定义。
  • i.stack.imgur.com/svhIt.png i.stack.imgur.com/otDSe.png 在这里你可以看到截图(标记在我的帖子中)
  • 我明白了。从 String[] 改变 types = new String[dataset.getSeriesCount()]; for(int i = 0; i

标签: android android-studio achartengine


【解决方案1】:

我明白了。变化自

String[] types = new String[dataset.getSeriesCount()];
    for(int i = 0; i < (dataset.getSeriesCount()); i++)
    {
        types[i] = LineChart.TYPE;
    }

CombinedXYChart.XYCombinedChartDef[] types = new CombinedXYChart.XYCombinedChartDef[]
            {

                    new CombinedXYChart.XYCombinedChartDef(LineChart.TYPE, 0), new CombinedXYChart.XYCombinedChartDef(LineChart.TYPE, 1)
            };

【讨论】:

    【解决方案2】:

    通过此链接github.com/hdodenhof/achartengine 也结合了时间序列成功。然后以下代码适用于 CombinedTimeChart ...:

        CombinedTimeChart.XYCombinedChartDef[] types =
                new CombinedXYChart.XYCombinedChartDef[] {
                        new CombinedXYChart.XYCombinedChartDef(CubicLineChart.TYPE, 0),
                        new CombinedXYChart.XYCombinedChartDef(LineChart.TYPE, 1),
                        new CombinedXYChart.XYCombinedChartDef(LineChart.TYPE, 2),
                        new CombinedXYChart.XYCombinedChartDef(BarChart.TYPE, 3)
        };
    
        mChart = getCombinedTimeChartView(this, dataset, multiRenderer, types);
    

    【讨论】:

      猜你喜欢
      • 2019-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-14
      • 2021-10-01
      • 1970-01-01
      • 2015-04-19
      相关资源
      最近更新 更多