我将此代码用于在googlemaps android中绘制多边形。我是从Map Drawing这个库中取得的。
我用Kotlin编写了此代码,但出现错误。 这是我的代码:
...
private fun getMarkers(points: Array<LatLng>): List<ExtraMarker> {
val extraMarkers: List<ExtraMarker> = ArrayList()
@IdRes val icon = R.drawable.ic_add_polypoint
for (latLng in points)
{
val extraMarker = ExtraMarkerBuilder()
.setCenter(latLng)
.setIcon(icon)
.build()
extraMarkers.add(extraMarker) <--- error in here (add)
}
return extraMarkers
}
这里有错误
extraMarkers.add(extraMarker)
我从以下代码构建:
private List<ExtraMarker> getMarkers(LatLng[] points) {
List<ExtraMarker> extraMarkers = new ArrayList<>();
@IdRes int icon = R.drawable.ic_beenhere_blue_grey_500_24dp;
for (LatLng latLng : points) {
ExtraMarker extraMarker =
new ExtraMarkerBuilder()
.setCenter(latLng)
.setIcon(icon)
.build();
extraMarkers.add(extraMarker);
}
return extraMarkers;
}
请帮助我,如何解决? 谢谢。
答案 0 :(得分:0)
尝试一下。
private fun getMarkers(points: Array<LatLng>): List<ExtraMarker> {
val extraMarkers: ArrayList<ExtraMarker> = ArrayList()
@IdRes val icon = R.drawable.ic_add_polypoint
for (latLng in points)
{
val extraMarker = ExtraMarkerBuilder()
.setCenter(latLng)
.setIcon(icon)
.build()
extraMarkers.add(extraMarker)
}
return extraMarkers
}
希望这会有所帮助。
对于刚从Java迁移的人,默认情况下,在Kotlin中,List是不可变的,可变的List版本称为MutableList。
因此,如果您有类似的东西:
val list: List<String> = ArrayList()
在这种情况下,您将不会获得add()
方法,因为列表是不可变的。因此,您将必须声明一个MutableList,如下所示:
val list: MutableList<String> = ArrayList()
现在您将看到一个add()
方法,您可以将元素添加到任何列表中。
答案 1 :(得分:0)
对于刚开始Kotlin游览的人,尤其是来自Java的人,建议您尝试以下网站:http://try.kotlinlang.org/
有一个按钮呼叫convert from Java
:
使用此方法,您可以复制原始Java代码段并轻松转换为Kotlin代码。例如,我将您原来的Java代码粘贴到对话框中,然后得到以下结果:
易于使用,如果您刚开始使用Kotlin进行编码,这将很有帮助。