如何在 Kotlin 中向 listof() 函数添加项目?

问题描述 投票:0回答:1

我有一个带有

Coordinate(latitude,longitude)
数据类的 listof() 变量,例如,这就是我初始化它的方式:

var coordinate = listof<Coordinate>()

我想通过从 Firebase 数据库检索多边形的每个标记来添加纬度和经度,例如:

val databaseReference = FirebaseDatabase.getInstance().getReference("polygon").child("coordinate")

databaseReference.addListenerForSingleValueEvent(object: ValueEventListener {
    override fun onDataChange(snapshot: DataSnapshot) {
                if (snapshot.exists()) {
                    val numberOfCoor = snapshot.childrenCount.toInt()
                                        var i = 1

                                        for (n in i until numberOfCoor + 1) {
                                            val latitude = snapshot.child("coordinate$i")
                                                .child("latitude").getValue().toString().toDouble()
                                            val longitude = snapshot.child("coordinate$i")
                                                .child("longitude").getValue().toString().toDouble()
                                            coordinate.plus(Coordinate(longitude, latitude))
                             }
               }
override fun onCancelled(error: DatabaseError) {

  }
})

所以从上面的代码可以看出,我使用

coordinate.plus(Coordinate(longitude, latitude))

添加每个纬度和经度

但是当我下载这个GeoJSON文件时,坐标没有纬度和经度。

那么如何在 Kotlin 中向 listof() 函数添加项目?

谢谢你。

android kotlin firebase-realtime-database geojson listof
1个回答
0
投票

listOf
返回不可变的
List<out Coordinate>

为了能够将项目添加到列表中,您可以使用

mutableListOf<Coordinate>

实例化它
© www.soinside.com 2019 - 2024. All rights reserved.