【发布时间】:2020-03-06 17:29:57
【问题描述】:
我有一个包含很多日期的字符串数组列表(4500 个应用程序),我需要将所有这些日期放在我用 MPAndroidChart 创建的图表的 xAxis 上,我如何在 Kotlin 中做到这一点?
这是我的代码:
val chart= ChartUtils()
val mChart:LineChart = root.findViewById(R.id.lineChartEvolCuota) as LineChart
mChart.isDragEnabled = true
mChart.setScaleEnabled(false)
mChart.axisRight.isEnabled=false
val test : MutableList<object> = db.Object()
val yArray= ArrayList<Entry>()
val xLabel = ArrayList<String>()
var c = 0f
for (i in test){
yArray.add(Entry(c, i.value!!.toFloat()))
xLabel.add(i.date.toString())
c+=1f
}
val xaxis:XAxis = mChart.xAxis
xaxis.granularity=1f
val set1 = LineDataSet(yFondoA, "TEST")
set1 .color = Color.parseColor(color)
set1 .setDrawCircles(false)
set1 .setDrawValues(false)
val data = LineData(set1)
mChart.data = data
mChart.setVisibleXRangeMaximum(365f)
mChart.moveViewToX(c)
解决方案
val xaxis:XAxis = mChart.xAxis
xaxis.granularity=1f
xaxis.setValueFormatter(object : ValueFormatter() {
val pattern = "dd MMM yy"
private val mFormat = SimpleDateFormat(pattern)
private val inputFormat = SimpleDateFormat("yyyy-MM-dd")
override fun getFormattedValue(value: Float): String {
val millis = TimeUnit.HOURS.toMillis(value.toLong())
return mFormat.format(inputFormat.parse(xLabel[value.toInt()]))
}
})
【问题讨论】:
标签: android kotlin mpandroidchart