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