使用mpandroidchart和kotlin显示条形图

使用mpandroidchart和kotlin显示条形图,android,kotlin,mpandroidchart,Android,Kotlin,Mpandroidchart,我正在尝试使用Kotlin使用mpandroidchart库显示一个简单的条形图。我在网上找到的大多数示例都使用java,所以复制代码,粘贴到android studio中转换为Kotlin,然后尝试修复错误是必要的。 但我似乎无法修复使用BarEntry时出现的问题,如图所示。 感谢您的帮助。谢谢 BarEntry只接受Float和FloatArray。您传递的是Int而不是Float。在每个值后使用f,如: val barEntry = BarEntry(8f, 0f) 或使用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:

依赖关系{

实现'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)
}
class MainActivity:AppCompatActivity(){
重写创建时的乐趣(savedInstanceState:Bundle?){
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
setBarChart()
}
私人娱乐{
val entries=ArrayList()
条目。添加(巴伦特里(8f,0))
条目。添加(巴伦特里(2f,1))
条目。添加(巴伦特里(5f,2))
条目。添加(巴伦特里(20f,3))
条目。添加(巴伦特里(15f,4))
条目。添加(巴伦特里(19f,5))
val barDataSet=barDataSet(条目,“单元格”)
val labels=ArrayList()
标签。添加(“1月18日”)
标签。添加(“1月19日”)
标签。添加(“1月20日”)
标签。添加(“1月21日”)
标签。添加(“1月22日”)
标签。添加(“1月23日”)
val data=BarData(标签,barDataSet)
barChart.data=data//将数据和标签列表设置到图表中
setDescription(“设置条形图说明”)//设置说明
//barDataSet.SetColor(ColorTemplate.Colorbid_COLORS)
barDataSet.color=resources.getColor(R.color.colorAccent)
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>


@RupinyEric,你找到解决方案了吗?我尝试了你的解决方案,它解决了这个问题。我实际上使用了@RajuTukadiya的例子。但是当:
val data=BarData(labels,barDataSet)
时会出现另一个错误。它说“类型不匹配。必需:IBarDataSet!,找到:kotlin.collections.ArrayList”,也不会降低库版本的级别。如果这个问题解决了,那么接受答案,对于进一步的问题,创建另一个问题,详细提及该问题。希望你能理解。谢谢