2017-05-26 32 views
0

我正在使用MPAndroidChart創建分組條形圖。一切都很好,但我無法正確顯示MarkerView。MPAndroidChart:刷新標記視圖內容時條目數據爲空

我想根據入口索引在MarkerView中顯示一些信息,但我只能檢索x或y值。

refreshContent方法

@Override 
public void refreshContent(Entry e, Highlight highlight) { 
     Log.d("MARKER", "x:" + e.getX() + " | y:" + e.getY() 
       + " | hx:" + highlight.getX() + " | hy:" + highlight.getY() 
       + " | dataindex:" + highlight.getDataIndex() 
       + " | datasetindex:" + highlight.getDataSetIndex()); 
     super.refreshContent(e, highlight); 
} 

這是我的日誌輸出:

x:2.7349997 | y:65.0 | hx:2.7349997 | hy:65.0 | dataindex:1 | datasetindex:1 

Dataindex始終爲1,無論我點擊該欄。 Datasetindex根據組欄中的索引顯示正確的值。

我意識到可以使用getData()方法從Entry,所以用於每個BarEntry另一個構造:

new BarEntry(x, y, "extraData"); 

然而,e.getData()爲空在refreshContent

我在做什麼錯?

回答

1

訣竅在我的圖表上,因爲它是由條形圖和折線圖組成的。所以,當我點擊我的圖表中的一個點時,由於我的折線圖中有一個水龍頭,我正在接收refreshContent事件。然後,如果我爲每個折線圖條目設置了數據對象,那麼現在它在refreshContent方法中收到。但是我的解決辦法是禁用高亮線數據集:

lineDataSet.setHighlightEnabled(false); 

這樣的圖表,每一個水龍頭屬於總是條形圖。