问题描述
[{"month":"August 2020","total":"4587175.08"},{"month":"July 2020","total":"9151128.27"},{"month":"June 2020","total":"10859553.16"},{"month":"May 2020","total":"2600435.33"}]
该数据是从数据库到我的图形,但出现了以上错误 我插入整个代码的代码如下
public void onResponse(@NotNull Call<List<MonthlySales>> call,@NotNull Response<List<MonthlySales>> response) {
//check if the response body is null
if(response.body()!=null){
List<BarEntry> barEntries = new ArrayList<>();
for (MonthlySales monthlySales : response.body()) {
barEntries.add(new BarEntry(monthlySales.getMonth(),monthlySales.getTotal()));
}
BarDataSet dataSet = new BarDataSet(barEntries,"Monthly Sales");
dataSet.setColors(ColorTemplate.MATERIAL_COLORS);
BarData data = new BarData(dataSet);
data.setBarWidth(10f);
chart.setVisibility(View.VISIBLE);
chart.animateXY(2000,2000);
chart.setData(data);
chart.setFitBars(true);
Description description = new Description();
description.setText("Sales per month");
chart.setDescription(description);
chart.invalidate();
我可能做错了什么?请注意,月份应该是x轴标签,而y轴应该是总数,我应该如何实现呢?
解决方法
Java中的构造函数是用于初始化的特殊方法 对象。当一个类的对象是 已创建。
import com.github.mikephil.charting.data.BarDataSet;
import com.github.mikephil.charting.data.BarEntry;
检查BarEntry
类。
/**
* Constructor for normal bars (not stacked).
*
* @param x
* @param y
*/
public BarEntry(float x,float y) {
super(x,y);
}
public BarEntry(float x,float y,Object data) {
super(x,y,data);
}
public BarEntry(float x,Drawable icon) {
super(x,icon);
}
public BarEntry(float x,Drawable icon,icon,float[] vals) {
super(x,calcSum(vals));
this.mYVals = vals;
}
public BarEntry(float x,float[] vals,calcSum(vals),data);
this.mYVals = vals;
}
public BarEntry(float x,icon);
this.mYVals = vals;
}
public BarEntry(float x,data);
this.mYVals = vals;
}
演示
ArrayList<BarEntry> barEntries = new ArrayList<>();
barEntries.add(new BarEntry(1f,0));
barEntries.add(new BarEntry(2f,1));