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

eoxn13cs  于 12个月前  发布在  Android
关注(0)|答案(1)|浏览(145)

在开发一个涉及Android Google Maps API v2.0的应用程序时,我发现FragmentManager.findFragmentById(<resource ID of fragment XML file>)总是返回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
//

字符串
我怎样才能获得Fragment/SupportFragment对象本身(而不是通过扩展布局获得的视图)?

cu6pst1q

cu6pst1q1#

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

相关问题