14.动态和实时数据

自v1.6.3起可用 - 不断改进。

为了将新数据添加到图表或动态删除数据,有多种方法可以将Entry对象从现有对象DataSet添加或删除或从现有ChartData对象添加或删除DataSet对象。

动态添加/删除数据的可能性

Class DataSet(和所有子类):

  • addEntry(Entry e):将给定的Entry对象添加到DataSet。

Class ChartData(和所有子类):

  • addEntry(Entry e, int dataSetIndex):将给定的数据集添加Entry到DataSet指定的数据集索引。
  • addDataSet(DataSet d):将给定DataSet对象添加到ChartData对象。

除此之外,还有动态删除数据的方法:

Class DataSet(和所有子类):

  • public boolean removeFirst():从条目数组中删除此DataSet的第一个条目(在索引0)。如果成功则返回true,否则返回false。
  • public boolean removeLast():从条目数组中删除此DataSet的最后一个条目(索引大小为-1)。如果成功则返回true,否则返回false。
  • public boolean removeEntry(Entry e):Entry从中删除给定的对象DataSet。成功返回true。
  • public boolean removeEntry(int xIndex):Entry从给定的x-index中删除DataSet。成功返回true。
    Class ChartData(和所有子类):

  • public boolea 大专栏  14.动态和实时数据n removeEntry(Entry e, int dataSetIndex):Entry从DataSet给定的数据集索引中删除给定的对象。成功返回true。

  • public boolean removeEntry(int xIndex, int dataSetIndex):Entry从DataSet给定的数据集索引中删除给定的x- index。成功返回true。
  • public boolean removeDataSet(DataSet d):DataSet从ChartData对象中删除给定的对象。成功返回true。
  • public boolean removeDataSet(int index):DataSet从ChartData对象中删除给定的索引。成功返回true。

记住

在动态添加或删除数据后,notifyDataSetChanged() 必须在刷新之前调用。

 //示例1 
 //将条目添加到“data”对象 
 exampleData.addEntry(...);
 chart.notifyDataSetChanged(); //让图表知道它是数据变化的 
 chart.invalidate(); //刷新

 //实施例2 
 //条目添加到“数据集”对象 
dataSet.addEntry(...);
 exampleData.notifyDataChanged(); //让数据知道一个dataSet更改的 
 chart.notifyDataSetChanged(); //让图表知道它是数据变化的 
 chart.invalidate(); //刷新

注意:方法moveViewTo(…)会自动调用invalidate()。

动态数据示例

有关如何实现动态数据添加/删除的示例,请参考示例应用程序和以下示例Activities:

  • DynamicalAddingActivity
  • RealtimeDataActivity

你可能感兴趣的:(14.动态和实时数据)