英文:
Cannot resolve constructor 'BarEntry(java.lang.String, java.lang.Float)
问题
以下是翻译好的内容:
public void onResponse(@NotNull Call<List<MonthlySales>> call, @NotNull Response<List<MonthlySales>> response) {
// 检查响应体是否为空
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, "月销售额");
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("每月销售额");
chart.setDescription(description);
chart.invalidate();
}
}
英文:
I would like to create agraph from the json data bellow
[{"month":"August 2020","total":"4587175.08"},{"month":"July 2020","total":"9151128.27"},{"month":"June 2020","total":"10859553.16"},{"month":"May 2020","total":"2600435.33"}]
That data is from a db to my graph but I get the error above
My code for inserting the entires is as follows
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();
What could I be doing wrong? Note that the month should be the xaxis label while the total the yaxis, how coud I achieve this?
答案1
得分: 2
> Java中的构造函数是一种特殊的方法,用于初始化对象。当创建类的对象时,构造函数会被调用。
import com.github.mikephil.charting.data.BarDataSet;
import com.github.mikephil.charting.data.BarEntry;
请查看[**`BarEntry`**][1]类。
/**
* 正常柱状条的构造函数(非堆叠)。
*
* @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, float y, Drawable icon) {
super(x, y, icon);
}
public BarEntry(float x, float y, Drawable icon, Object data) {
super(x, y, icon, data);
}
public BarEntry(float x, float[] vals) {
super(x, calcSum(vals));
this.mYVals = vals;
}
public BarEntry(float x, float[] vals, Object data) {
super(x, calcSum(vals), data);
this.mYVals = vals;
}
public BarEntry(float x, float[] vals, Drawable icon) {
super(x, calcSum(vals), icon);
this.mYVals = vals;
}
public BarEntry(float x, float[] vals, Drawable icon, Object data) {
super(x, calcSum(vals), icon, data);
this.mYVals = vals;
}
**DEMO**
ArrayList<BarEntry> barEntries = new ArrayList<>();
barEntries.add(new BarEntry(1f, 0));
barEntries.add(new BarEntry(2f, 1));
[1]: https://github.com/PhilJay/MPAndroidChart/blob/master/MPChartLib/src/main/java/com/github/mikephil/charting/data/BarEntry.java
英文:
> A constructor in Java is a special method that is used to initialise
> objects. The constructor is called when an object of a class is
> created.
import com.github.mikephil.charting.data.BarDataSet;
import com.github.mikephil.charting.data.BarEntry;
Check BarEntry
class.
/**
* 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, float y, Drawable icon) {
super(x, y, icon);
}
public BarEntry(float x, float y, Drawable icon, Object data) {
super(x, y, icon, data);
}
public BarEntry(float x, float[] vals) {
super(x, calcSum(vals));
this.mYVals = vals;
}
public BarEntry(float x, float[] vals, Object data) {
super(x, calcSum(vals), data);
this.mYVals = vals;
}
public BarEntry(float x, float[] vals, Drawable icon) {
super(x, calcSum(vals), icon);
this.mYVals = vals;
}
public BarEntry(float x, float[] vals, Drawable icon, Object data) {
super(x, calcSum(vals), icon, data);
this.mYVals = vals;
}
DEMO
ArrayList<BarEntry> barEntries = new ArrayList<>();
barEntries.add(new BarEntry(1f, 0));
barEntries.add(new BarEntry(2f, 1));
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论