无法解析构造函数'BarEntryjava.lang.String,java.lang.Float

问题描述

我想根据json数据创建一个图片

    [{"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));