2017-05-26 4 views
0

Ich verwende MPAndroidChart, um eine gruppierte Balken Diagramm zu erstellen. Alles ist gut, aber ich kann kein MarkerView richtig anzeigen.MPAndroidChart: Eintrag Daten ist Null, wenn Marker Inhalt Inhalt aktualisieren

Ich würde gerne einige Informationen in der MarkerView anzeigen, abhängig vom Eingangsindex, aber ich kann nur x oder y Werte abrufen.

refreshContent Methode

@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); 
} 

Das ist mein Logausgabe:

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

Dataindex ist immer 1 unabhängig davon, welche Bar I tippen. Dataseindex zeigt den korrekten Wert abhängig vom Index in der Gruppenleiste an.

ich merkte, ich getData() Methode von Entry verwenden können, so habe ich einen anderen Konstruktor für jede BarEntry:

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

jedoch e.getData() in refreshContent null ist.

Was mache ich falsch?

Antwort

1

Der Trick war auf meinem Diagramm, weil es aus einem Balkendiagramm und einem Liniendiagramm besteht. Wenn ich also auf einen Punkt in meinem Diagramm tippe, erhalte ich aufgrund eines Tippens in meinem Liniendiagramm das Ereignis refreshContent. Wenn ich dann das Datenobjekt für jeden Liniendiagrammeintrag einstelle, wird es jetzt auf refreshContent Methode empfangen. Allerdings war meine Lösung, Hervorhebung zu Zeile Datensatz zu deaktivieren:

lineDataSet.setHighlightEnabled(false); 

Auf diese Weise gehört jeder Tipp auf Diagramm immer Balkendiagramm.

Verwandte Themen