Android Google Maps API v2.0 を使用するアプリを開発しているときに、FragmentManager.findFragmentById() が常に NULL を返すことがわかりました。XML ファイルからフラグメントを膨らませました。View は問題なく取得できますが、Fragment 自体はどうでしょうか。IDを取得するまでにすべてがロードされていることを確認するために、4秒の遅延も試みました。
//
// 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 オブジェクト自体を取得するにはどうすればよいですか (レイアウトを膨張させて得られるビューとは対照的です)。