无法应用FragmentTransaction中的add()?

时间:2013-12-20 13:43:38

标签: java android android-fragments fragment

由于以下错误无法添加到片段事务,您将如何解决此问题?

add() in FragmentTransaction cannot be applied to:
Expected Parameters: Actual Arguments:
int R.id.mapWithOverlay  
android.support.v4.app.Fragment _mapFragment  (com.google.android.gms.maps.MapFragment)
String "map"

代码如下:

android.support.v4.app.FragmentTransaction fragTx = getSupportFragmentManager().beginTransaction();
if (fragTx != null) {
     _mapFragment = MapFragment.newInstance(mapOptions);
     fragTx.add(R.id.mapWithOverlay, _mapFragment, "map");
     fragTx.commit();
} else {
     Toast.makeText(this, "Could not display the map", Toast.LENGTH_SHORT).show();
}

提前致谢。

2 个答案:

答案 0 :(得分:7)

您使用的是SupportMapFragment(来自支持包),而不是MapFragment

常规MapFragment无效SupportFragmentManager

看到区别?

private class MyMap1 extends SupportMapFragment {

}

private class MyMap2 extends MapFragment {

}

答案 1 :(得分:0)

我更改为以下内容以使其正常工作,希望这会对其他人有所帮助吗?

FragmentTransaction fragTx = getFragmentManager().beginTransaction();
if (fragTx != null) {
     _mapFragment = MapFragment.newInstance(mapOptions);
     fragTx.add(R.id.mapWithOverlay, _mapFragment, "map");
     fragTx.commit();
} else {
     Toast.makeText(this, "Could not display the map", Toast.LENGTH_SHORT).show();
}