У меня есть функция, которая постоянно сообщает об изменениях какого-либо вида данных (каждые 1 с). Обратный вызов срабатывает только в случае изменения данных. Поэтому, если данные изменяются - обратный вызов запускается с новым значением для обновления соответствующего набора данных на диаграмме.
Например: у меня есть 3 набора данных. Набор данных 1 обновлен, запись добавлена. Но для других наборов данных (2 и 3) следует добавить запись со старым значением.
Как я могу этого достичь? Спасибо
Текущий код для добавления записи и увеличения других наборов данных.
private fun addEntry(newValue: Float, label: String) {
val data = chart.data
if (data != null) {
var set = data.getDataSetByLabel(label, false)
if (set == null) {
set = createSet(label)
data.addDataSet(set)
}
set.addEntry(Entry(set.entryCount.toFloat(), newValue))
data.dataSets.forEach {
if (it.label != label) {
if (it.entryCount >= data.entryCount) {
return@forEach
}
val entry = it.getEntryForIndex(it.entryCount - 1)
if (entry != null) {
it.addEntry(Entry(entry.x + 1, entry.y))
}
}
}
data.notifyDataChanged()
chart.notifyDataSetChanged()
chart.setVisibleXRangeMaximum(10f)
chart.moveViewToX(data.entryCount.toFloat())
}
}