使用带有 kotlin 的 mpandroidchart 显示条形图
Displaying a BarChart using mpandroidchart with kotlin
我正在尝试使用 Kotlin 通过 mpandroidchart 库显示一个简单的条形图。我在网上找到的大多数示例都使用 java,因此复制代码,粘贴到 android studio 中以转换为 Kotlin,然后尝试修复错误是必要的。
但我似乎无法修复使用 BarEntry 时出现的问题,如图所示。
任何帮助表示赞赏。谢谢
BarEntry 只接受 Float
和 FloatArray
。您传递的是 Int
而不是 Float
。在每个值之后使用 f
,例如:
val barEntry = BarEntry(8f, 0f)
或 使用 Kotlin 提供的 toFloat()
将您的值转换为 Float
,例如:
val barEntry = BarEntry(8f, 0.toFloat())
第 1 步:
dependencies {
implementation 'com.github.PhilJay:MPAndroidChart:v2.2.4'
}
第 2 步:
repositories {
maven { url "https://jitpack.io" }
}
第 3 步:
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
setBarChart()
}
private fun setBarChart() {
val entries = ArrayList<BarEntry>()
entries.add(BarEntry(8f, 0))
entries.add(BarEntry(2f, 1))
entries.add(BarEntry(5f, 2))
entries.add(BarEntry(20f, 3))
entries.add(BarEntry(15f, 4))
entries.add(BarEntry(19f, 5))
val barDataSet = BarDataSet(entries, "Cells")
val labels = ArrayList<String>()
labels.add("18-Jan")
labels.add("19-Jan")
labels.add("20-Jan")
labels.add("21-Jan")
labels.add("22-Jan")
labels.add("23-Jan")
val data = BarData(labels, barDataSet)
barChart.data = data // set the data and list of lables into chart
barChart.setDescription("Set Bar Chart Description") // set the description
//barDataSet.setColors(ColorTemplate.COLORFUL_COLORS)
barDataSet.color = resources.getColor(R.color.colorAccent)
barChart.animateY(5000)
}
}
第 4 步:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<com.github.mikephil.charting.charts.BarChart
android:id="@+id/barChart"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
未解决的参考:预期的条形图和变量
private fun setBarChart() {
val entries = ArrayList<BarEntry>()
entries.add(BarEntry(8f, 0))
entries.add(BarEntry(2f, 1))
entries.add(BarEntry(5f, 2))
entries.add(BarEntry(20f, 3))
entries.add(BarEntry(15f, 4))
entries.add(BarEntry(19f, 5))
val barDataSet = BarDataSet(entries, "Cells")
val labels = ArrayList<String>()
labels.add("18-Jan")
labels.add("19-Jan")
labels.add("20-Jan")
labels.add("21-Jan")
labels.add("22-Jan")
labels.add("23-Jan")
val data = BarData(labels, barDataSet)
barChart.data = data // set the data and list of lables into chart
barChart.setDescription("Bar Chart") // set the description
//barDataSet.setColors(ColorTemplate.COLORFUL_COLORS)
barDataSet.color = resources.getColor(R.color.colorAccent)
barChart.animateY(5000)
}
}
我正在尝试使用 Kotlin 通过 mpandroidchart 库显示一个简单的条形图。我在网上找到的大多数示例都使用 java,因此复制代码,粘贴到 android studio 中以转换为 Kotlin,然后尝试修复错误是必要的。 但我似乎无法修复使用 BarEntry 时出现的问题,如图所示。 任何帮助表示赞赏。谢谢
BarEntry 只接受 Float
和 FloatArray
。您传递的是 Int
而不是 Float
。在每个值之后使用 f
,例如:
val barEntry = BarEntry(8f, 0f)
或 使用 Kotlin 提供的 toFloat()
将您的值转换为 Float
,例如:
val barEntry = BarEntry(8f, 0.toFloat())
第 1 步:
dependencies {
implementation 'com.github.PhilJay:MPAndroidChart:v2.2.4'
}
第 2 步:
repositories {
maven { url "https://jitpack.io" }
}
第 3 步:
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
setBarChart()
}
private fun setBarChart() {
val entries = ArrayList<BarEntry>()
entries.add(BarEntry(8f, 0))
entries.add(BarEntry(2f, 1))
entries.add(BarEntry(5f, 2))
entries.add(BarEntry(20f, 3))
entries.add(BarEntry(15f, 4))
entries.add(BarEntry(19f, 5))
val barDataSet = BarDataSet(entries, "Cells")
val labels = ArrayList<String>()
labels.add("18-Jan")
labels.add("19-Jan")
labels.add("20-Jan")
labels.add("21-Jan")
labels.add("22-Jan")
labels.add("23-Jan")
val data = BarData(labels, barDataSet)
barChart.data = data // set the data and list of lables into chart
barChart.setDescription("Set Bar Chart Description") // set the description
//barDataSet.setColors(ColorTemplate.COLORFUL_COLORS)
barDataSet.color = resources.getColor(R.color.colorAccent)
barChart.animateY(5000)
}
}
第 4 步:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<com.github.mikephil.charting.charts.BarChart
android:id="@+id/barChart"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
未解决的参考:预期的条形图和变量
private fun setBarChart() {
val entries = ArrayList<BarEntry>()
entries.add(BarEntry(8f, 0))
entries.add(BarEntry(2f, 1))
entries.add(BarEntry(5f, 2))
entries.add(BarEntry(20f, 3))
entries.add(BarEntry(15f, 4))
entries.add(BarEntry(19f, 5))
val barDataSet = BarDataSet(entries, "Cells")
val labels = ArrayList<String>()
labels.add("18-Jan")
labels.add("19-Jan")
labels.add("20-Jan")
labels.add("21-Jan")
labels.add("22-Jan")
labels.add("23-Jan")
val data = BarData(labels, barDataSet)
barChart.data = data // set the data and list of lables into chart
barChart.setDescription("Bar Chart") // set the description
//barDataSet.setColors(ColorTemplate.COLORFUL_COLORS)
barDataSet.color = resources.getColor(R.color.colorAccent)
barChart.animateY(5000)
}
}