Wie bekomme ich eine onClickListener
für die xAxis-Etiketten? Wenn dies nicht möglich ist, gibt es eine andere Möglichkeit, Klickereignisse auf den xAxis-Labels zu empfangen?MPAndroidChart: Achten Sie auf Klickereignisse auf xAxis Etiketten
Antwort
Die xAxis-Beschriftungen sind keine Instanzen von View
. Stattdessen werden sie von MPAndroidChart direkt auf die Leinwand gerendert. Sie können also keine OnClickListener
für sie haben.
Der Weg zu tun, was Sie wollen, ist stattdessen eine benutzerdefinierte OnChartGestureListener
zu implementieren. Die javadoc für diese Klasse ist here
mChart.setOnChartGestureListener(new MyChartGestureListener());
In Ihrem MyChartGestureListener
Sie würden außer Kraft setzen onChartSingleTapped(MotionEvent me)
:
@Override
public void onChartSingleTapped(MotionEvent me) {
float tappedX = me.getX();
float tappedY = me.getY();
MPPointD point = mChart.getTransformer(YAxis.AxisDependency.LEFT).getValuesByTouchPoint(tappedX, tappedY);
Log.d(TAG, "tapped at: " + point.x + "," + point.y);
}
Das Snippet oben zeigt, wie die x- und y-Werte aus dem MotionEvent
zu erhalten. Sie würden dann eine gewisse Logik benötigen, um zu überprüfen, ob Sie nur auf ein Etikett und nicht auf einen anderen Teil des Diagramms tippen. Vielleicht ein bedingter wie:
if ((point.y) < labelYValue) {
Log.d(TAG, "tapped on label for x-value: " + point.x);
}
Oder Sie wahrscheinlich die rohe y
vom MotionEvent
verwenden können, wenn Sie es vorziehen.
Ein Transformator war alles, was ich wissen musste. Ich war ignorant genug, um diese Frage erneut zu stellen, obwohl Sie eine Lösung für ein ähnliches Problem durch Transformator in einer meiner vorherigen Fragen zur Verfügung gestellt haben. – androidnoob
@androidnoob danke für das Akzeptieren. Es ist eine vernünftige Frage - jemand könnte es in der Zukunft fragen, also denke ich, dass diese Fragen und Antworten helfen –
- 1. MPAndroidChart gruppiert BarChart abgeschnitten auf Xaxis
- 2. Wie MPAndroidChart alle xaxis-Werte anzeigt
- 3. Auf GPS-Statusänderung achten
- 4. Wie formatieren xAxis-Etiketten iOS-Diagramme
- 5. Achten Sie auf Änderung des IP-Adressstatus
- 6. Achten Sie auf eine Funktion namens JavaScript
- 7. Silverlight ToolKit Chart: Ausblenden xaxis Etiketten
- 8. mpandroidchart X-Achsen-Etiketten Dichte beim Herauszoomen
- 9. X-Achsen-Etiketten werden nicht angezeigt, mit MPAndroidChart
- 10. Wie kontrolliere ich die Häufigkeit von Etiketten auf LineDataSet?
- 11. Wie verberge ich die oberen 'xAxis lables' von MPandroidchart Liniendiagramm?
- 12. Nur Zeitlabel auf xAxis anzeigen. Highcharts
- 13. MPAndroidChart RadarChart kollabiert sich
- 14. MPAndroidChart zeichnen Strichlinie von XAxis Linie zu Datenpunkt
- 15. MP Android Chart "Tabelle" auf XAxis (Custom Renderer für XAxis)
- 16. Achten Sie auf Änderungen an Sitzungsspeicher ohne $ Intervall
- 17. Wie achten Sie auf Änderungen im niedrigstwertigen Bit?
- 18. Achten Sie auf Änderungen in Angular 2-Dienste-Funktion
- 19. Achten Sie auf eine variable Änderung in Python
- 20. Achten Sie auf Bildschirmgrößenänderung in einer Direktive Angularjs
- 21. Winkelbeispiel-Richtlinie Klickereignisse funktionieren nicht auf Mobilgeräten
- 22. Arbeiten mit TeeChart DateTime auf XAxis
- 23. HighCharts: Falsche Daten auf Datetime xaxis
- 24. Konturlinie Etiketten auf Prospektkarte
- 25. Haben Sie Probleme auf Ausrichten Etiketten richtig
- 26. Chart.js klicken Sie auf Etiketten, mit Balkendiagramm
- 27. Android NavigationView reagiert nicht auf Klickereignisse auf Elemente
- 28. Kategorien werden in Highcharts auf xAxis übersprungen
- 29. Wie man Jahreswerte auf xAxis in Highcharts
- 30. Etiketten auf imageJ
Überprüfen Sie dies [http://stackoverflow.com/a/34850792/6799753] es könnte helfen –