问题描述
我正在使用 MPAndroidChart 中的 PieChart,并通过 Firebase 获取我的元素。显示图表内容没有问题,但只有当我点击 PieChart 视图时才有意义。
XML
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<com.github.mikephil.charting.charts.PieChart
android:id="@+id/pieChartTest"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
活动
class TestActivity : AppCompatActivity() {
val mAuth = FirebaseAuth.getInstance().currentUser!!.uid
val ref = FirebaseDatabase.getInstance().reference.child("users").child(mAuth)
var angry = 0f
var happy = 0f
var sad = 0f
var calm = 0f
lateinit var pieChart : PieChart
lateinit var mood : ArrayList<PieEntry>
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_test)
pieChart = findViewById(R.id.pieChartTest)
ref.child("chart").addListenerForSingleValueEvent(object : ValueEventListener {
override fun onCancelled(error: DatabaseError) {}
override fun onDataChange(snapshot: DataSnapshot) {
mood = arraylistof()
val map = snapshot.value as Map<*,*>
angry = map["angry"].toString().toFloat()
happy = map["happy"].toString().toFloat()
sad = map["sad"].toString().toFloat()
calm = map["calm"].toString().toFloat()
mood = arraylistof(
PieEntry(angry,"angry"),PieEntry(happy,"Happy"),PieEntry(sad,"Sad"),PieEntry(calm,"Calm")
)
val pieDataSet = PieDataSet(mood,"").apply {
setColors(ColorTemplate.COLORFUL_COLORS,200)
valueTextColor = Color.BLACK
valueTextSize = 16f
}
val pieData = PieData(pieDataSet)
pieChart.apply{
data = pieData
description.isEnabled = false
centerText = getText(R.string.mood).toString()
animate()
}
}
})
}
}
点击前 https://i.stack.imgur.com/afVM7.png
点击后 https://i.stack.imgur.com/DJIpQ.png
我通常对 PieChart 没有任何问题,但这是我第一次想通过 addListenerForSingleValueEvent 检索变量并将它们推送到 PieChart。如何创建活动并显示图表内容而无需单击?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)