2017-03-18 98 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我很高興它有幫助!祝你的項目好運! –

相關問題