2017-03-18 62 views
0

我有问题与我的算法。我删除位置0,但我的数据集ddint移动像-1。然后,我加上连续这个maked我的项目送花儿给人删除最后一个条目,不停的位置添加条目25位新进入25MPAndroidChart如何将数据集移动到位置-1后删除位置0

这里是代码:

private void addEntry() { 
    data = mChart.getData(); 
    if (set1 == null) { 
     set1 = createSet(); 
     data.addDataSet(set1); 
    } 
    int prog = 1; 
    for (int i = 0; i < prog; i++) { 
     float val = (float) (Math.random() * 2); 
     float high = (float) (Math.random() * 1) + 2f; 
     float low = (float) (Math.random() * 1) + 2f; 
     float open = (float) (Math.random() * 2) + 1f; 
     float close = (float) (Math.random() * 2) + 1f; 
     boolean even = i % 2 == 0; 
     data.addEntry(new CandleEntry(25, val + high, val - low, even ? val + open : val - open, 
       even ? val - close : val + close), 0); 
     data.notifyDataChanged(); 
     mChart.notifyDataSetChanged(); 
     mChart.setVisibleXRangeMaximum(25); 
     mChart.moveViewTo(data.getEntryCount() - 24, 2f, YAxis.AxisDependency.RIGHT); 
    } 
} 

private void removeLastEntry() { 
    CandleData data = mChart.getData(); 
    if (data != null) { 
     ICandleDataSet set = data.getDataSetByIndex(0); 
     if (set != null) { 
      Entry e = set.getEntryForIndex(0); 
      data.removeEntry(e, 0); 
      data.notifyDataChanged(); 
      mChart.notifyDataSetChanged(); 
      mChart.invalidate(); 
     } 
    } 
} 

回答

1

DataSet#getEntryForIndex(int index)返回入口即首先在Entry的后备阵列中,该阵列可能是或可能不是Entry,并且图表上的最小值为x。从javadoc

返回值列表中给定索引(NOT xIndex)处的Entry对象。

我怀疑你真的想使用类似以下内容:

float xMin = dataSet.getXMin(); 
dataSet.remove(dataSet.getEntryForXPos(xMin); 

,查看javadoc here

但是,您的用例有点不寻常。您希望所有其他条目“向下移动”,看起来,当您使用最小值移除Entry时。如果你只是不经常这样做,那么当你这样做时可能会更容易构建一个新的数据集。请注意,虽然在图表中添加Entry很容易,但随机访问Entry并删除它们并不如此。请参见下面的注释中the wiki

请注意,这个库并不正式支持从没有在上升方式中的条目的x位置排序的条目列表绘制线型图数据。以未排序的方式添加条目可能会导致正确的绘制,但也可能会导致意外的行为。

+0

U帮了我这个,谢谢 – Rodriquez

+0

@Rodriquez我很高兴它有帮助!祝你的项目好运! –

相关问题