0

我已经实现了简单的方法:

@Override
protected void addDataSet(int day) {
    LineData lineData = this.lineChart.getData();

    if(lineData != null) {
        ArrayList<Entry> yValues = new ArrayList<Entry>();

        for(int i = 0; i < this.measureDataListEntries.size(); i++) {
            String stringValue = this.measureDataListEntries.get(i).getValue();
            int dayOfWeek = Helper.getDayOfWeek(this.measureDataListEntries.get(i).getTime());
            float value = Float.parseFloat(stringValue);

            if(dayOfWeek == day) {
                yValues.add(new Entry(value, i));
            }
        }

        String label = this.getLabel(day);
        int color = this.getColor(day);

        LineDataSet lineDataSet = new LineDataSet(yValues, label);
        lineDataSet.setColor(color);
        lineDataSet.setCircleColor(color);
        lineDataSet.setLineWidth(1f);
        lineDataSet.setCircleSize(4f);
        lineDataSet.setFillAlpha(65);

        lineData.addDataSet(lineDataSet);

        this.lineChart.notifyDataSetChanged();
        this.lineChart.invalidate(); 
        this.lineChart.animateX(1000);

        if(yValues.size() > 0) {
            this.getCheckBox(day).setEnabled(true);
        }
    }
}

@Override
protected void removeDataSet(int day) {
    LineData lineData = this.lineChart.getData();

    if(lineData != null) {
        String label = this.getLabel(day);

        lineData.removeDataSet(lineData.getDataSetByLabel(label, true));

        this.lineChart.notifyDataSetChanged();
        this.lineChart.invalidate(); 
        this.lineChart.animateX(1000);
    }
}

在启动时,我添加了七个不同的数据集:周一、周二、周三、周四、周五、周六、周日。数据集的添加和删除适用于所有日子,除了数据集第一个位置的那一天,在这种情况下是星期一。remove 方法被正确调用,但数据集没有被删除。总是添加作品。

只有第一个位置的数据集不能被删除

有解决方法吗?

编辑

用于删除的代码MPAndroidChart如下:

public T getDataSetByLabel(String label, boolean ignorecase) {

    int index = getDataSetIndexByLabel(mDataSets, label, ignorecase);

    if (index <= 0 || index >= mDataSets.size())
        return null;
    else
        return mDataSets.get(index);
}

为什么有<= 0而不只是< 0

当然,在第一个位置添加一个虚拟数据集会使其正常工作,但我从来都不是这种丑陋编码的朋友。为什么不接受 index = 0 进行删除?

4

1 回答 1

1

这已经修复了。使用最新版本的库。

请参考:https ://github.com/PhilJay/MPAndroidChart/issues/255

自 2014 年 12 月 16 日起修复。

于 2015-02-22T15:29:55.957 回答