Как ссылаться на круговую диаграмму из адаптера? - PullRequest
0 голосов
/ 07 октября 2019

Я рисую круговую диаграмму, используя MPAndroidChart Я хочу обновить значения при нажатии на элемент, но не могу сослаться на pieChart из адаптера или в другом месте

Process: com.pistudiosofficial.myclass, PID: 29078
    java.lang.NullPointerException: Attempt to invoke virtual method 'void com.github.mikephil.charting.charts.PieChart.notifyDataSetChanged()' on a null object reference
        at com.pistudiosofficial.myclass.adapters.AdapterCourseItem$1.onClick(AdapterCourseItem.java:70)

В OnCreate

pieChart=findViewById(R.id.attendnace_pie_chart);
setPieChart();
  public void setPieChart() {
        pieChart.setVisibility(View.VISIBLE);
        pieChart.setUsePercentValues(true);
        pieChart.setTransparentCircleRadius(20f);
        dataSet = new PieDataSet(yValues, "");
        PieData data = new PieData( dataSet);
        data.setValueFormatter(new PercentFormatter());
        Description description= new Description();
        description.setText("");
        pieChart.setDescription(description);
        pieChart.setData(data);
        pieChart.setDrawHoleEnabled(true);
        pieChart.setTransparentCircleRadius(20f);
        pieChart.setHoleRadius(20f);
        dataSet.setColors(ColorTemplate.VORDIPLOM_COLORS);
        data.setValueTextSize(10f);
        data.setValueTextColor(Color.DKGRAY);
        pieChart.animateXY(1400, 1400);
    }

В методе адаптера OnClick

 public void onClick(View view) {
                float att=Float.parseFloat(ATTD_PERCENTAGE_LIST.get(position));
                ProfileNewActivity profileNewActivity=new ProfileNewActivity();
                ArrayList<PieEntry> Values=new ArrayList<>();
               Values.add(new PieEntry(att,"Present",0));
               Values.add(new PieEntry((100-att),"Absent",1));
               profileNewActivity.yValues=Values;
               profileNewActivity.pieChart.notifyDataSetChanged();
               profileNewActivity.pieChart.invalidate();
            }
...