Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/190.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 保存地图标记引用_Android_Google Maps - Fatal编程技术网

Android 保存地图标记引用

Android 保存地图标记引用,android,google-maps,Android,Google Maps,我想知道是否有人可以帮助我,我正在尝试在ConcurrentHashMap中保存对新创建的标记的引用,我似乎在存储引用时没有问题,但当我尝试检索它时,应用程序崩溃并抛出NullPointer异常,下面是我如何存储和检索我的标记 将其存储在mMarkers中,这是私有映射mMarkers=new ConcurrentHashMap() 在出现故障时将其删除 map.setOnMapLongClickListener(new OnMapLongClickListener() { @

我想知道是否有人可以帮助我,我正在尝试在ConcurrentHashMap中保存对新创建的标记的引用,我似乎在存储引用时没有问题,但当我尝试检索它时,应用程序崩溃并抛出NullPointer异常,下面是我如何存储和检索我的标记

将其存储在
mMarkers
中,这是
私有映射mMarkers=new ConcurrentHashMap()

在出现故障时将其删除

map.setOnMapLongClickListener(new OnMapLongClickListener() {

        @Override
        public void onMapLongClick(LatLng point) {

            Marker marker = mMarkers.get(point);

            marker.remove(); //fails here
            mMarkers.remove(point);             
        }
    });
我使用标记的位置作为存储它的键

04-06 16:52:05.535: E/AndroidRuntime(26601): FATAL EXCEPTION: main
04-06 16:52:05.535: E/AndroidRuntime(26601): java.lang.NullPointerException
04-06 16:52:05.535: E/AndroidRuntime(26601):    at com.grim.pipboid.FragmentMap$1.onMapLongClick(FragmentMap.java:154)
04-06 16:52:05.535: E/AndroidRuntime(26601):    at com.google.android.gms.maps.GoogleMap$7.onMapLongClick(Unknown Source)
04-06 16:52:05.535: E/AndroidRuntime(26601):    at com.google.android.gms.maps.internal.j$a.onTransact(Unknown Source)
04-06 16:52:05.535: E/AndroidRuntime(26601):    at android.os.Binder.transact(Binder.java:310)
04-06 16:52:05.535: E/AndroidRuntime(26601):    at euq.a(SourceFile:93)
04-06 16:52:05.535: E/AndroidRuntime(26601):    at maps.c.j.b(Unknown Source)
04-06 16:52:05.535: E/AndroidRuntime(26601):    at maps.ay.an.c(Unknown Source)
04-06 16:52:05.535: E/AndroidRuntime(26601):    at maps.ay.bc.onLongPress(Unknown Source)
04-06 16:52:05.535: E/AndroidRuntime(26601):    at maps.bo.g.onLongPress(Unknown Source)
04-06 16:52:05.535: E/AndroidRuntime(26601):    at maps.bo.h.c(Unknown Source)
04-06 16:52:05.535: E/AndroidRuntime(26601):    at maps.bo.i.handleMessage(Unknown Source)
04-06 16:52:05.535: E/AndroidRuntime(26601):    at android.os.Handler.dispatchMessage(Handler.java:99)
04-06 16:52:05.535: E/AndroidRuntime(26601):    at android.os.Looper.loop(Looper.java:137)
04-06 16:52:05.535: E/AndroidRuntime(26601):    at android.app.ActivityThread.main(ActivityThread.java:5227)
04-06 16:52:05.535: E/AndroidRuntime(26601):    at java.lang.reflect.Method.invokeNative(Native Method)
04-06 16:52:05.535: E/AndroidRuntime(26601):    at java.lang.reflect.Method.invoke(Method.java:511)
04-06 16:52:05.535: E/AndroidRuntime(26601):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795)
04-06 16:52:05.535: E/AndroidRuntime(26601):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:562)
04-06 16:52:05.535: E/AndroidRuntime(26601):    at dalvik.system.NativeStart.main(Native Method)

感谢您阅读

用户可以长时间单击地图上的任何位置。它不必位于现有标记的精确纬度和经度。因此,您的
LatLng
HashMap

中不存在,但在这种情况下,用户不存在,因为我只是在测试并按下标记。你能提出一个更好的方法吗?没关系,我明白你的意思了,我已经把它添加到了OnMarkerClick的听众中,谢谢你。
04-06 16:52:05.535: E/AndroidRuntime(26601): FATAL EXCEPTION: main
04-06 16:52:05.535: E/AndroidRuntime(26601): java.lang.NullPointerException
04-06 16:52:05.535: E/AndroidRuntime(26601):    at com.grim.pipboid.FragmentMap$1.onMapLongClick(FragmentMap.java:154)
04-06 16:52:05.535: E/AndroidRuntime(26601):    at com.google.android.gms.maps.GoogleMap$7.onMapLongClick(Unknown Source)
04-06 16:52:05.535: E/AndroidRuntime(26601):    at com.google.android.gms.maps.internal.j$a.onTransact(Unknown Source)
04-06 16:52:05.535: E/AndroidRuntime(26601):    at android.os.Binder.transact(Binder.java:310)
04-06 16:52:05.535: E/AndroidRuntime(26601):    at euq.a(SourceFile:93)
04-06 16:52:05.535: E/AndroidRuntime(26601):    at maps.c.j.b(Unknown Source)
04-06 16:52:05.535: E/AndroidRuntime(26601):    at maps.ay.an.c(Unknown Source)
04-06 16:52:05.535: E/AndroidRuntime(26601):    at maps.ay.bc.onLongPress(Unknown Source)
04-06 16:52:05.535: E/AndroidRuntime(26601):    at maps.bo.g.onLongPress(Unknown Source)
04-06 16:52:05.535: E/AndroidRuntime(26601):    at maps.bo.h.c(Unknown Source)
04-06 16:52:05.535: E/AndroidRuntime(26601):    at maps.bo.i.handleMessage(Unknown Source)
04-06 16:52:05.535: E/AndroidRuntime(26601):    at android.os.Handler.dispatchMessage(Handler.java:99)
04-06 16:52:05.535: E/AndroidRuntime(26601):    at android.os.Looper.loop(Looper.java:137)
04-06 16:52:05.535: E/AndroidRuntime(26601):    at android.app.ActivityThread.main(ActivityThread.java:5227)
04-06 16:52:05.535: E/AndroidRuntime(26601):    at java.lang.reflect.Method.invokeNative(Native Method)
04-06 16:52:05.535: E/AndroidRuntime(26601):    at java.lang.reflect.Method.invoke(Method.java:511)
04-06 16:52:05.535: E/AndroidRuntime(26601):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795)
04-06 16:52:05.535: E/AndroidRuntime(26601):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:562)
04-06 16:52:05.535: E/AndroidRuntime(26601):    at dalvik.system.NativeStart.main(Native Method)