Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/207.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用MPAndroidChart将周中的天数用作右轴标签?_Android_Kotlin_Mpandroidchart - Fatal编程技术网

如何使用MPAndroidChart将周中的天数用作右轴标签?

如何使用MPAndroidChart将周中的天数用作右轴标签?,android,kotlin,mpandroidchart,Android,Kotlin,Mpandroidchart,当我使用下面的代码时,只有第一个值被更改为Mo,但其余的值是相同的。如何编辑代码使其正常工作 mChart.getAxisRight().setValueFormatter(new MyValueFormatter()); 这里的主要问题是您的值与days数组索引不匹配。第一个与0索引匹配,因此显示,但其他值为20、40、60。。。这超出了范围。所以要解决这个问题,你必须创建一个映射而不是数组。我在这里解决了你的问题: class MyValueFormatter : ValueFor

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

mChart.getAxisRight().setValueFormatter(new MyValueFormatter());

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

    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()
        }
    }

您应该使用XAxis而不是AxisRight。它会对你更有用。因为左/右轴用于值而不是文本。
    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()
        }
    }