AnyChart Android не работает с Firebase - PullRequest
0 голосов
/ 21 апреля 2020

Я пытаюсь использовать 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.

...