Я пытаюсь использовать anychart для построения графика данных, хранящихся в базе данных firebase, но я не могу получить данные с помощью ValueDataEntry. Я уже проверил соединение с моей базой данных, используя System.out.println () для извлечения данных, и это нормально.
public class statistics extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_statistics);
AnyChartView anyChartView = findViewById(R.id.any_chart_view);
anyChartView.setProgressBar(findViewById(R.id.progress_bar));
Cartesian cartesian = AnyChart.column();
final List<DataEntry> data = new ArrayList<>();
DatabaseReference ref = FirebaseDatabase.getInstance().getReference("sales");
ref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for (DataSnapshot ds: dataSnapshot.getChildren()){
Sales sales = ds.getValue(Sales.class);
data.add(new ValueDataEntry(sales.getName(), sales.getSold()));
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
Column column = cartesian.column(data);
column.tooltip()
.titleFormat("{%X}")
.position(Position.CENTER_BOTTOM)
.anchor(Anchor.CENTER_BOTTOM)
.offsetX(0d)
.offsetY(5d)
.format("${%Value}{groupsSeparator: }");
cartesian.animation(true);
cartesian.title("sample title");
cartesian.yScale().minimum(0d);
cartesian.yAxis(0).labels().format("${%Value}{groupsSeparator: }");
cartesian.tooltip().positionMode(TooltipPositionMode.POINT);
cartesian.interactivity().hoverMode(HoverMode.BY_X);
cartesian.xAxis(0).title("Product");
cartesian.yAxis(0).title("Revenue");
anyChartView.setChart(cartesian);
}
вот мой класс
public class Sales {
public String id;
public String name;
public int sold;
public Sales() {
}
public Sales(String id, String name, int sold) {
this.id = id;
this.name = name;
this.sold = sold;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getSold() {
return sold;
}
public void setSold(int sold) {
this.sold = sold;
}
}
Я просто хочу заполнить гистограмму данными из Firebase.