想了三四天都不知道咋回事,最后发现是一个很智障的错误。。。
如下所示:
可以看到,有的科目的扇形图是正常显示的,有的没有正常显示。
输出数据:
//根据数据对pieChart进行初始化
ArrayList<Integer> data = list.get(i).getData();
ArrayList<String> name = new ArrayList<>(Arrays.asList("55-60", "50-55", "45-50","40-45", "40以下"));
List<PieEntry> pieEntries = new ArrayList<>();
ArrayList<String> rate = new ArrayList<>();for(Integer x : data) {System.out.println(x);
}for(int m = 0; m < 5; m++) {System.out.println("当前 = " + data.get(m) / (data.get(0) + data.get(1) + data.get(2) + data.get(3) + data.get(4)) * 100);DecimalFormat df = new DecimalFormat("0.00%");String decimal = df.format(data.get(m) / (data.get(0) + data.get(1) + data.get(2) + data.get(3) + data.get(4)));PieEntry pieEntry = new PieEntry(data.get(m) / (data.get(0) + data.get(1) + data.get(2) + data.get(3) + data.get(4)) * 100, name.get(m));pieEntries.add(pieEntry);rate.add(decimal);
}
输出发现每次计算的扇形比例都为0,所以显示不出来。
解决:
PieEntry pieEntry = new PieEntry((float)data.get(m) / (data.get(0) + data.get(1) + data.get(2) + data.get(3) + data.get(4)) * 100, name.get(m));