如何使用星期几作为 MPAndroidChart 的右轴标签?

How to use days of week as right axis labels with MPAndroidChart?

当我使用下面的代码时,只有第一个值更改为“Mo”,但其余值是相同的。如何编辑我的代码以使其工作?

mChart.getAxisRight().setValueFormatter(new MyValueFormatter());
class MyValueFormatter : ValueFormatter() {
    private val days = arrayOf("Mo", "Tu", "Wed", "Th", "Fr", "Sa", "Su")

    override fun getAxisLabel(value: Float, axis: AxisBase?): String {
        return days.getOrNull(value.toInt()) ?: value.toString()
    }
}

这里的主要问题是您的值与天数数组索引不匹配。第一个与 0 索引匹配,因此它显示但其他值是 20、40、60 ... OutOfArrayIndexBounds。所以要解决这个问题你必须创建一个映射而不是数组。我在这里解决了你的问题:

    class MyValueFormatter : ValueFormatter() {
        private val days = mapOf(0.0f to "Mon", 20.0f to "Tu", 40.0f to "Wed", 60.0f to "Th", 80.0f to "Fr", 100.0f to "Sa", 120.0f to "Su")

        override fun getAxisLabel(value: Float, axis: AxisBase?): String {
            return if (days.containsKey(value)) days[value] else value.toString()
        }
    }