Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/214.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/6/google-chrome/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 Google Maps API v2:FragmentManager.findFragmentById()始终返回NULL_Android_Api_Maps_Fragment - Fatal编程技术网

Android Google Maps API v2:FragmentManager.findFragmentById()始终返回NULL

Android Google Maps API v2:FragmentManager.findFragmentById()始终返回NULL,android,api,maps,fragment,Android,Api,Maps,Fragment,在开发涉及Android Google Maps API v2.0的应用程序时,我发现FragmentManager.findFragmentById()总是返回NULL。我从一个XML文件中扩展了片段。我可以得到视图没问题,但是片段本身呢?我甚至尝试了4秒的延迟,以确保在我获得ID时所有内容都已加载 // // res/layout/mapfragment.xml: // <?xml version="1.0" encoding="UTF-8"?> <fragmen

在开发涉及Android Google Maps API v2.0的应用程序时,我发现FragmentManager.findFragmentById()总是返回NULL。我从一个XML文件中扩展了片段。我可以得到视图没问题,但是片段本身呢?我甚至尝试了4秒的延迟,以确保在我获得ID时所有内容都已加载

//
// res/layout/mapfragment.xml:
//

<?xml version="1.0" encoding="UTF-8"?>
    <fragment xmlns:android="http://schemas.android.com/apk/res/android"
              android:id="@+id/map"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
              class="com.google.android.gms.maps.SupportMapFragment"/>

// Transmitting resource ID of fragment in XML

    ui.setMapFragmentResourceID(R.layout.mapfragment);

..

// Showing map

    @Override
        public void showMap() {

    ...

        m_map = m_currentActivity.getLayoutInflater().inflate(m_mapFragmentResourceID, null);

        cv.postDelayed(new Runnable() {
            @Override
            public void run() {
                afterShowMapView();
            }
        }, 4000);
    }

// 4000 msec delay to allow for everything to load

    public void afterShowMapView()
    {
        FragmentActivity fa = (FragmentActivity)m_currentActivity;

        FragmentManager fm = fa.getSupportFragmentManager();
        SupportMapFragment f = (SupportMapFragment)fm.findFragmentById(m_mapFragmentResourceID);
    }

//
// f is always null
//
//
//res/layout/mapfragment.xml:
//
//在XML中传输片段的资源ID
setMapFragmentResourceID(R.layout.mapfragment);
..
//显示地图
@凌驾
公共void showMap(){
...
m_map=m_currentActivity.getLayoutFlater().inflate(m_mapFragmentResourceID,null);
cv.postDelayed(新的可运行(){
@凌驾
公开募捐{
afterShowMapView();
}
}, 4000);
}
//4000毫秒延迟,允许加载所有内容
public void afterShowMapView()
{
FragmentActivity fa=(FragmentActivity)m_currentActivity;
FragmentManager fm=fa.getSupportFragmentManager();
SupportMapFragment f=(SupportMapFragment)fm.findFragmentById(m_mapFragmentResourceID);
}
//
//f总是空的
//

如何获取片段/SupportFragment对象本身(与我通过膨胀布局获得的视图相反)?

您使用正确的ID,即基于XML的
R.ID.map
。如果我正确理解了您的代码,您正在使用
R.layout.mapfragment

谢谢!解决了的。XML文件的资源ID与XML文件中片段的资源ID不同。