Я внедрившие простыми методами: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-7-4 (https://github.com/PhilJay/MPAndroidChart/releases/ tag/v1.7.4) ошибка не исправлена в этой версии. – Mulgard