使用适用于 Android 的 Google map API (v2),我尝试将一些国家/地区多边形近似值存储到数据结构中,特别是以字符串作为键(国家/地区名称)和 PolygonOptions ArrayList 的 map 。
此变量是私有(private)的并由以下人员声明:
private Map<String, ArrayList<PolygonOptions>> worldMap;
但是当我尝试在以下函数中用 PolygonOption 填充它时,我的代码崩溃了:
private void addSomeCountry() {
ArrayList <PolygonOptions> MyPoli = new ArrayList<PolygonOptions>();
PolygonOptions rectOptions = new PolygonOptions()
.add(new LatLng(42.569962, 1.78172 ))
.add(new LatLng(42.509438, 1.723611))
.add(new LatLng(42.601944, 1.445833))
.add(new LatLng(42.569962, 1.78172))
.fillColor(Color.TRANSPARENT)
.strokeColor(Color.CYAN);
MyPoli.add(rectOptions);
worldMap.put("Andorra", MyPoli);
}
具体来说,它崩溃并出现以下错误:
04-04 21:20:30.335 22562-22562/otorrillas.geography E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: otorrillas.geography, PID: 22562
Caused by: java.lang.NullPointerException
at otorrillas.geography.DataSaver.addSomeCountry(DataSaver.java:49)
at otorrillas.geography.DataSaver.onCreate(DataSaver.java:32)
我做错了什么吗?
最佳答案
我没有看到您在任何地方初始化 worldMap
。
private Map<String, ArrayList<PolygonOptions>> worldMap = new HashMap<>();
应该做。
关于java - 将元素添加到 String、Arraylist 的 Map,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29450571/