MPAndroidChart:LineChart中来自LiveData的多个LineDataSet

时间:2018-09-27 19:26:56

标签: android mpandroidchart android-livedata

查看其他示例,我发现图表一次需要所有数据集,一旦准备好就不能迭代地添加它们。我错了吗?

ArrayList<ILineDataSet> dataSets = new ArrayList<ILineDataSet>();
...
dataSets.add(d1);
dataSets.add(d2);
...
LineData data = new LineData(dataSets);
mChart.setData(data);

我的问题是我在数据库中保存了多个LineDataSet的必要数据,并通过LiveData访问它们。绘制单个LineDataSet很简单,因为我会在stuff.observe {}中编写该逻辑。

stuff.observe(this, goodStuff -> {
    Data data = generateData(goodStuff);
    mChart.setData(data);
});

但是现在我必须观察多个填充物,然后将多个填充物的数据设置到图表中。 如何实现呢?

1 个答案:

答案 0 :(得分:1)

是的,您可以动态地/实时地添加数据,只需记住,您还需要通知图表有关观察者中数据的信息,

stuff.observe(this, goodStuff -> {
    Data data = generateData(goodStuff);
    mChart.setData(data);
    mChart.notifyDataSetChanged(); // let the chart know it's data changed
    mChart.invalidate(); // refresh chart
});

here

查看更多信息