2015-02-22 4 views
0

Я внедрившие простыми методами:MPAndroidChart удаление набора данных выпуск

@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 вызывается правильно, но набор данных не удаляется. добавление работ всегда.

набор данные на первую позиции не может быть удален только

Есть обходной путь?

EDIT

Код, используемый для удаления из 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 для деления?

ответ

1

Это уже исправлено. Используйте последнюю версию библиотеки.

см это: https://github.com/PhilJay/MPAndroidChart/issues/255

Fixed начиная с 16-го декабря 2014 г.

+0

Последний релиз я нашел это 1-7-4 (https://github.com/PhilJay/MPAndroidChart/releases/ tag/v1.7.4) ошибка не исправлена ​​в этой версии. – Mulgard

 Смежные вопросы

  • Нет связанных вопросов^_^