MP Android未显示X轴值

时间:2018-10-12 02:02:25

标签: android kotlin mpandroidchart

Bar Graph with NO X value我能够成功绘制MP Android图表,但是如果单击特定的条,则它不会显示X轴值。我正在使用kotlin,下面是示例代码的一部分。

输入:

[{“ date”:“ 2018-09-15”,“ count”:“ 5”},{“ date”:“ 2018-09-16”,“ count”:“ 10”}]

工作代码:

val entries = ArrayList<BarEntry>()
    val labels = ArrayList<String>()
    val arr = JSONArray(jsonStringArray)
    for (i in 0 until arr.length()) {
        entries.add(BarEntry(arr.getJSONObject(i).getInt("count").toFloat(), i))
        labels.add(arr.getJSONObject(i).getString("date"))
           }
    val barDataSet = BarDataSet(entries, "Test Data")
    barDataSet.setValueTextSize(10f)
    val data = BarData(labels, barDataSet)
    barChart.data = data 
    val colors = intArrayOf(Color.rgb(132, 101, 122))
    barDataSet.setColors(colors)

1 个答案:

答案 0 :(得分:0)

您可以实现自己的ValueFormatter以显示所需的任何文本。在getFormattedValue()中,您可以访问entry,您可以将其称为getXIndex()

private class MyValueFormatter implements ValueFormatter
{

    @Override
    public String getFormattedValue(float value, Entry entry, int dataSetIndex, ViewPortHandler viewPortHandler) {
        return String.format("%d,%f",entry.getXIndex(),value);
    }
}

在kotlin中,您可以这样操作:

barDataSet.valueFormatter = object : ValueFormatter{
    fun getFormattedValue(value: Float, entry: Entry, dataSetIndex: Int, viewPortHandler: ViewPortHandler): String {
        return String.format("%d,%f", entry.xIndex, value)
    }
}