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 如何获取谷歌地图参考-安卓谷歌地图API_Android_Google Maps_Android Maps V2 - Fatal编程技术网

Android 如何获取谷歌地图参考-安卓谷歌地图API

Android 如何获取谷歌地图参考-安卓谷歌地图API,android,google-maps,android-maps-v2,Android,Google Maps,Android Maps V2,我努力使用谷歌地图Android API 情况是:我有一个父片段,其中包含对MapFragment的引用。 我的目标是在地图上添加一些标记 MapFragment在onViewCreated方法中始终返回null,这是预期的,因为此时MapFragment布局可能尚未完全加载 void onViewCreated(){ GoogleMap sMap = mapFragment.getMap(); //<---- always return null // add marker

我努力使用谷歌地图Android API

情况是:我有一个父片段,其中包含对MapFragment的引用。 我的目标是在地图上添加一些标记

MapFragment在onViewCreated方法中始终返回null,这是预期的,因为此时MapFragment布局可能尚未完全加载

void onViewCreated(){

   GoogleMap sMap = mapFragment.getMap(); //<---- always return null
   // add markers
   //.....
}
因为getMap()不能保证在任何时候返回映射引用,并且没有钩子方法或某个地方可以让我注册回调。而且后台异步任务似乎不被允许,如何确定何时调用getMap()并获取映射引用?

以上链接中的解决方案适合我。
虽然我还没有找到文档说getMap()将在onActivityCreated中返回一个有用的映射引用,但是在那里调用getMap似乎是可行的

在onCreateView中包含下面这段代码片段,它将解决您的问题

   SupportMapFragment mFragment;
        mFragment = new SupportMapFragment() {
            @Override
            public void onActivityCreated(Bundle savedInstanceState) {
                super.onActivityCreated(savedInstanceState);
                if ((map = mFragment.getMap()) != null) {
                    setUpMap();
                }
            }
        };
一旦准备好映射,将调用SuppotMapFragment的onActivityCreated,您可以在那里设置映射

希望这有帮助

06-23 11:28:05.754: I/dalvikvm(4129): Jit: resizing JitTable from 4096 to 8192
06-23 11:28:05.754: I/dalvikvm(4129): Jit: resizing JitTable from 4096 to 8192
06-23 11:28:05.764: E/AndroidRuntime(4129): FATAL EXCEPTION: main
06-23 11:28:05.764: E/AndroidRuntime(4129): Process: com.wenchao.map, PID: 4129
06-23 11:28:05.764: E/AndroidRuntime(4129): java.lang.NullPointerException
06-23 11:28:05.764: E/AndroidRuntime(4129):     at kbh.a(Unknown Source)
06-23 11:28:05.764: E/AndroidRuntime(4129):     at mbi.a(Unknown Source)
06-23 11:28:05.764: E/AndroidRuntime(4129):     at lxn.a(Unknown Source)
06-23 11:28:05.764: E/AndroidRuntime(4129):     at lxm.a(Unknown Source)
06-23 11:28:05.764: E/AndroidRuntime(4129):     at fnb.onTransact(SourceFile:107)
06-23 11:28:05.764: E/AndroidRuntime(4129):     at   android.os.Binder.transact(Binder.java:361)
06-23 11:28:05.764: E/AndroidRuntime(4129):     at com.google.android.gms.maps.internal.IMapFragmentDelegate$a$a.onCreateView(Unknown Source)
 06-23 11:28:05.764: E/AndroidRuntime(4129):    at com.google.android.gms.maps.SupportMapFragment$a.onCreateView(Unknown Source)
06-23 11:28:05.764: E/AndroidRuntime(4129):     at com.google.android.gms.dynamic.a$4.b(Unknown Source)
06-23 11:28:05.764: E/AndroidRuntime(4129):     at com.google.android.gms.dynamic.a.a(Unknown Source)
06-23 11:28:05.764: E/AndroidRuntime(4129):     at com.google.android.gms.dynamic.a.onCreateView(Unknown Source)
06-23 11:28:05.764: E/AndroidRuntime(4129):     at com.google.android.gms.maps.SupportMapFragment.onCreateView(Unknown Source)
06-23 11:28:05.764: E/AndroidRuntime(4129):     at android.support.v4.app.Fragment.performCreateView(Fragment.java:1460)
06-23 11:28:05.764: E/AndroidRuntime(4129):     at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:911)
06-23 11:28:05.764: E/AndroidRuntime(4129):     at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1088)
06-23 11:28:05.764: E/AndroidRuntime(4129):     at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
06-23 11:28:05.764: E/AndroidRuntime(4129):     at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1444)
06-23 11:28:05.764: E/AndroidRuntime(4129):     at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:429)
06-23 11:28:05.764: E/AndroidRuntime(4129):     at android.os.Handler.handleCallback(Handler.java:733)
06-23 11:28:05.764: E/AndroidRuntime(4129):     at android.os.Handler.dispatchMessage(Handler.java:95)
06-23 11:28:05.764: E/AndroidRuntime(4129):     at android.os.Looper.loop(Looper.java:136)
06-23 11:28:05.764: E/AndroidRuntime(4129):     at android.app.ActivityThread.main(ActivityThread.java:5001)
06-23 11:28:05.764: E/AndroidRuntime(4129):     at java.lang.reflect.Method.invokeNative(Native Method)
06-23 11:28:05.764: E/AndroidRuntime(4129):     at java.lang.reflect.Method.invoke(Method.java:515)
06-23 11:28:05.764: E/AndroidRuntime(4129):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
06-23 11:28:05.764: E/AndroidRuntime(4129):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
06-23 11:28:05.764: E/AndroidRuntime(4129):     at dalvik.system.NativeStart.main(Native Method)
06-23 11:28:06.914: I/Process(4129): Sending signal. PID: 4129 SIG: 9
   SupportMapFragment mFragment;
        mFragment = new SupportMapFragment() {
            @Override
            public void onActivityCreated(Bundle savedInstanceState) {
                super.onActivityCreated(savedInstanceState);
                if ((map = mFragment.getMap()) != null) {
                    setUpMap();
                }
            }
        };