我的组合图表有点问题。 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);
我总是得到第4个参数错误的错误。但我在另一个Android应用程序中使用了3年之前相同的代码。 Error Screenshot 1 Error Screenshot 2 您可以在附加的图片中看到错误消息。 错误的第4个参数类型。找到'java.lang.String []',必填:'org.achartengine.chart.CombinedXYChart.XYCombinedChartDef []'
有人可以帮我解决这个问题吗?我不知道如何解决它。
答案 0 :(得分:1)
有了这个链接 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);
答案 1 :(得分:0)
我明白了。改变
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)
};