MPAndroidchart返回无图表数据可用

时间:2016-02-06 13:07:38

标签: charts dataset mpandroidchart

我遇到了MPAndroidChart的问题。 我将温度和湿度数据添加到图表中,但它始终显示“没有可用的图表数据”。 谁能在这里看到我的bug在哪里? 我将非常感激!

//Create Data

                //set size of data
                int size = list.size();
                if (size > 24){ size = 24;}

                //create lists form temp and hum
                ArrayList<Entry> temps = new ArrayList<Entry>();
                ArrayList<Entry> hums = new ArrayList<Entry>();


                //fill list temp with values
                for (int i = 0; i < size; i++){
                    Entry value = new Entry(Math.round(list.get(list.size()-size + i).temp), (size-i));
                    temps.add(value);
                }

                //fill list hum with values
                for (int i = 0; i < size; i++){
                    Entry value = new Entry(Math.round(list.get(list.size()-size + i).hum), (size-i));
                    hums.add(value);
                }

                //other views on screen
                date.setText(dateString);
                time.setText(timeString);
                temp.setText(tempString);
                hum.setText(humString);


                //adding Data and description to array
                LineDataSet setTemp = new LineDataSet(temps, "Temperature");
                setTemp.setAxisDependency(YAxis.AxisDependency.LEFT);
                LineDataSet setHum = new LineDataSet(hums, "Humidity");
                setHum.setAxisDependency(YAxis.AxisDependency.LEFT);

                //adding Arrays to DataSet
                ArrayList<ILineDataSet> dataSets = new ArrayList<ILineDataSet>();
                dataSets.add(setTemp);
                dataSets.add(setHum);
                ArrayList<String> xVals = new ArrayList<String>();

                //Adding x values of range size
                for (int i = 0; i < size; i++ ){
                    xVals.add(String.valueOf(i));
                }

                //add Data and create chart
                LineData data = new LineData(xVals, dataSets);
                chart.setData(data);
                chart.invalidate();

            }
        });

2 个答案:

答案 0 :(得分:0)

我很长时间看这篇文章。我唯一能想到的就是这一行:

Math.round(list.get(list.size()-size + i).hum

.hum是什么?它可以为Entry生成不受支持的类型吗? 由于Phil J.先生还没有找到答案,所以这个问题的解决方案让我很感兴趣。

答案 1 :(得分:0)

设置数据后需要调用:

 chart.invalidate();

刷新图表。