【发布时间】:2021-05-22 16:39:38
【问题描述】:
我正在使用 MP 图表显示行程计数,一切正常,除了 Y 轴值显示为浮点值而不是整数。
我在 jan、feb 等中有整数值...我想在 y 轴上以整数格式显示它,但它显示为浮点值,例如。 jan =10 已转换为 10.0。
这是我正在使用的代码:
//Variables
var barData: BarData? = null
var barDataSet: BarDataSet? = null
var barEntries: java.util.ArrayList<BarEntry>? = null
var jan =""
var feb=""
var mar=""
var apr=""
var may=""
var jun=""
var jul=""
var aug=""
var sep=""
var oct=""
var nov=""
var dec=""
//Method to call at OnCreate
private fun getEntries() {
barEntries = java.util.ArrayList<BarEntry>()
myUID = userSP.getString("userId")
myUID?.let {
db.collection("OperatorUsers").document(it)
.collection("Completed Services").document(myUID!!).addSnapshotListener { value: DocumentSnapshot?, error: FirebaseFirestoreException? ->
try {
if (value!!.exists()) {
jan = value.getLong("january").toString()
feb = value.getLong("february").toString()
mar = value.getLong("march").toString()
apr = value.getLong("april").toString()
may = value.getLong("may").toString()
jun = value.getLong("june").toString()
jul = value.getLong("july").toString()
aug = value.getLong("august").toString()
sep = value.getLong("september").toString()
oct = value.getLong("october").toString()
nov = value.getLong("november").toString()
dec = value.getLong("december").toString()
setBarChart()
}
} catch (e: java.lang.Exception) {
e.printStackTrace()
Log.d("fs", e.message!!)
setBarChart()
}
}
}
}
private fun setBarChart() {
if (jan != "null") {
barEntries?.add(BarEntry(1f, jan.toFloat()))
} else {
barEntries?.add(BarEntry(1f, 0.0f))
}
if (feb != "null") {
barEntries?.add(BarEntry(2f, feb.toFloat()))
} else {
barEntries?.add(BarEntry(2f, 0.0f))
}
if (mar != "null") {
barEntries?.add(BarEntry(3f, mar.toFloat()))
} else {
barEntries?.add(BarEntry(3f, 0.0f))
}
if (apr != "null") {
barEntries?.add(BarEntry(4f, apr.toFloat()))
} else {
barEntries?.add(BarEntry(4f, 0.0f))
}
if (may != "null") {
barEntries?.add(BarEntry(5f, may.toFloat()))
} else {
barEntries?.add(BarEntry(5f, 0.0f))
}
if (jun != "null") {
barEntries?.add(BarEntry(6f, jun.toFloat()))
} else {
barEntries?.add(BarEntry(6f, 0.0f))
}
if (jul != "null") {
barEntries?.add(BarEntry(7f, jul.toFloat()))
} else {
barEntries?.add(BarEntry(7f, 0.0f))
}
if (aug != "null") {
barEntries?.add(BarEntry(8f, aug.toFloat()))
} else {
barEntries?.add(BarEntry(8f, 0.0f))
}
if (sep != "null") {
barEntries?.add(BarEntry(9f, sep.toFloat()))
} else {
barEntries?.add(BarEntry(9f, 0.0f))
}
if (oct != "null") {
barEntries?.add(BarEntry(10.0f, oct.toFloat()))
} else {
barEntries?.add(BarEntry(10.0f, 0.0f))
}
if (nov != "null") {
barEntries?.add(BarEntry(11f, nov.toFloat()))
} else {
barEntries?.add(BarEntry(11f, 0.0f))
}
if (dec != "null") {
barEntries?.add(BarEntry(12f, dec.toFloat()))
} else {
barEntries?.add(BarEntry(12f, 0.0f))
}
val labels = arrayOf("Dummy", "Jan", "Feb", "March", "April", "May",
"June", "July", "Aug", "Sept", "Oct", "Nov", "Dec")
val xAxis: XAxis = mpBarChart.xAxis
val leftAxis : YAxis = mpBarChart.axisLeft
xAxis.valueFormatter = IndexAxisValueFormatter(labels)
xAxis.granularity = 1f
xAxis.isGranularityEnabled = true
leftAxis.setGranularity(1.0f);
leftAxis.setGranularityEnabled(true); // Required to enable granularity
barDataSet = BarDataSet(barEntries, "No.of Trips")
barData = BarData(barDataSet)
mpBarChart.data=barData
mpBarChart.description.text="Month wise Dashboard"
barDataSet!!.setColors(*ColorTemplate.MATERIAL_COLORS)
barDataSet!!.setValueTextSize(8f)
barDataSet!!.setValueTextColor(Color.BLACK)
//mpBarChart.setBackgroundResource(R.drawable.card_search)
mpBarChart.getAxisLeft().setDrawGridLines(false)
mpBarChart.getXAxis().setDrawGridLines(false)
mpBarChart.getAxisRight().setDrawGridLines(false)
}
我找到了很多答案,比如 value formatter,但它们在 java 中,我试图在 Kotlin 中转换它,但没有帮助。 所以请帮助任何人,在此先感谢!
【问题讨论】:
-
您到底尝试了什么?在这些情况下究竟是什么不起作用?如果您不准确地告诉我们您需要什么,我们怎么知道该告诉您做什么。例如,您将如何转换
5.99?应该是5还是6(我们不知道你可能输入)?顺便说一句,您不需要那些if/else语句,只需执行barEntries?.add(BarEntry(1f, jan.toFloat() ?: 0.0f))。同样,barEntries首先可以为空有什么意义?将其初始化为空列表。 -
我在 jan、feb 等中有整数值...我想在 y 轴上以整数格式显示它,但它显示为浮点值,例如。 jan =10 已转换为 10.0。
标签: android kotlin bar-chart mpandroidchart