【发布时间】:2014-03-06 12:05:26
【问题描述】:
我正在创建一个简单的 Activity,其中包含两个选项卡。我关注documentation,所以我使用Fragment。
在我的活动中只有两个选项卡。第一个是 Map (MapFragment),第二个是简单的 List (ListFragment)
一切正常,我唯一的问题是我无法正确管理地图。
在onTabSelected 回调中,我使用了以下代码:
public void onTabSelected(Tab tab, FragmentTransaction ft) {
if (mFragment == null) {
mFragment = Fragment.instantiate(mActivity, mClass.getName(), mArgs);
ft.add(android.R.id.content, mFragment, mTag);
} else {
ft.attach(mFragment);
if(mTag.compareToIgnoreCase("map")==0)
setUpMapIfNeeded((MapFragment)mFragment);
}
}
其中 map 是我的第一个 Activity 的标签,方法 setUpMapIfNeeded 是:
private static void setUpMapIfNeeded(MapFragment mMapFragment) {
// Do a null check to confirm that we have not already instantiated the map.
if (mMap == null) {
mMap = mMapFragment.getMap();
// Check if we were successful in obtaining the map.
if (mMap != null) {
mMap.addMarker(new MarkerOptions().position(new LatLng(0, 0)).title("Marker"));
}
}
}
因此,仅当我选择选项卡时,才会在地图中添加标记。
问题是:如何修改我的代码以在活动启动时也执行 addMarker 操作(无需明确按下第一个选项卡)?
【问题讨论】:
标签: android google-maps android-fragments android-activity android-actionbar