Anychart не меняется с данными - PullRequest
0 голосов
/ 04 марта 2020

Я пытаюсь использовать anychart с данными, хранящимися в firebase, я добавил спиннер для фильтрации данных, которые я использовал log.e, чтобы узнать, меняются ли мои данные, и я пришел к выводу, что данные меняются довольно хорошо, но проблема в том, что я p ie диаграмма не обновляется с новыми данными, это мой код

protected void onStart() {
        super.onStart();
        spinner = (Spinner) findViewById(R.id.spinner2);``

        anyChartView= (AnyChartView)findViewById(R.id.chart11);

        pie= AnyChart.pie();
        dataEntries=new ArrayList<>();
        dataEntries.clear();

        spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, final int position, long id) {
                ref3.addValueEventListener(new ValueEventListener() {
                    @Override
                    public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                        String s2;
                        dataEntries.clear();

                        for (int i=0;i<list2.size();i++){
                            s2=dataSnapshot.child(list2.get(i)).child("category").getValue(String.class);
                            s=spinner.getItemAtPosition(position).toString();
                            Log.e(TAG, "onDataChange: s &&& s2"+s+"    "+s2 );

                            if (s.equals(s2)){

                                dataEntries.add(new ValueDataEntry(list2.get(i),Integer.parseInt(dataSnapshot.child(list2.get(i)).child("count").getValue(String.class))));
                                Log.e(TAG, "onDataChange: data"+list2.get(i)+"  "+ dataSnapshot.child(list2.get(i)).child("count").getValue(String.class));
                            }else continue;}

                        Log.e(TAG, "onDataChange: size"+dataEntries.size() );

                        anyChartView= (AnyChartView)findViewById(R.id.chart11);

                        pie= AnyChart.pie();
                        pie.data(dataEntries);
                        anyChartView.setChart(pie);
                    }

                    @Override
                    public void onCancelled(@NonNull DatabaseError databaseError) {

                    }
                });


1 Ответ

0 голосов
/ 05 марта 2020

Чтобы обновить диаграмму p ie, вам нужно просто применить новые данные к существующей диаграмме p ie и сделать ее активной. Там нет необходимости воссоздавать график или что-то еще. Подробности смотрите в объяснении с фрагментом на нашей странице GitHub .

...