Присвоение метки и цвета диаграммам mp android через цикл - PullRequest
0 голосов
/ 01 февраля 2020

У меня есть код Kotlin, который генерирует гистограмму, используя mp android графики lib. На данный момент информация жестко запрограммирована для тестирования, но в будущем она будет загружена с сервера. Проблема в том, что я создаю al oop для этого раздела кода, который назначает formColors и Labels для легенд.

    barChart = findViewById<View>(R.id.barChart) as BarChart
    val mLegend = barChart.legend

    val l1 = LegendEntry()
    l1.formColor = Color.BLACK
    l1.label = "18-Jan"

    val l2 = LegendEntry()
    l2.formColor = Color.RED
    l2.label = "19-Jan"

    val l3 = LegendEntry()
    l3.formColor = Color.GREEN
    l3.label = "20-Jan"

    val l4 = LegendEntry()
    l4.formColor = Color.GRAY
    l4.label = "21-Jan"

    val l5 = LegendEntry()
    l5.formColor = Color.CYAN
    l5.label = "22-Jan"

    val l6 = LegendEntry()
    l6.formColor = Color.MAGENTA
    l6.label = "23-Jan"

    mLegend.setCustom (
        arrayOf (
            l1, l2, l3, l4, l5, l6
        )
    )

Вот массив mColors и months

    val mColors = arrayOf(
        Color.BLACK,
        Color.RED,
        Color.GREEN,
        Color.GRAY,
        Color.CYAN,
        Color.MAGENTA
    )

    val months = arrayOf(
        "18-Jan",
        "19-Jan",
        "20-Jan",
        "21-Jan",
        "22-Jan",
        "23-Jan"
    )

Здесь это данные.

private fun getData(): MutableList<BarEntry>? {
    val entries: ArrayList<BarEntry> = ArrayList()
    entries.add(BarEntry(0f,1000f))
    entries.add(BarEntry(1f,985f))
    entries.add(BarEntry(2f,275f))
    entries.add(BarEntry(3f,300f))
    entries.add(BarEntry(4f,784f))
    entries.add(BarEntry(5f,675f))
    return entries
}

Это l oop, который я пытаюсь создать. К сожалению, он показывает только одну легенду, когда я запускаю его на устройстве. Любая помощь приветствуется.

   private fun assignLabelColor() {
   // am assuming that the size of data is 5 for this question
   for(i in 0 until 5) {
     val lE = LegendEntry()
     l.formColor = mColors
     l.label = months
  }
   mLegend.setCustom (
        arrayOf (lE)
   )
}
...