Java 无法应用FragmentTransaction中的add()?

Java 无法应用FragmentTransaction中的add()?,java,android,android-fragments,fragment,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" 代码如下: an

由于以下错误,无法添加到片段事务,您将如何处理

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();
}

提前感谢。

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

常规的
MapFragment
不能与
SupportFragmentManager
一起使用

看到区别了吗

private class MyMap1 extends SupportMapFragment {

}

private class MyMap2 extends MapFragment {

}

我改为以下内容以使其工作,希望这将有助于其他人

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();
}

查看此答案:感谢您的回答,因此您认为fragTx变量在这里是错误的?否。您的Mapfragment类继承了错误版本的Mapfragment。只有在您不使用支持包的情况下,此选项才有效。你不能用这种方法瞄准Android的早期版本,因为getFragmentManager在Api 11Ah之前的版本上不存在,我看到了,我将不得不研究两者之间的差异。感谢您的帮助:-)如果您想针对早期版本,您需要实现我的答案并使用SupportMapFragmentOk,谢谢,我将接受您的答案,但也将我的答案留在这里,以帮助其他希望针对更高版本的人。根据Android的目标版本,这两个答案可能都是正确的。我假设您希望使用支持包,因为您的项目已经引用了它。作为旁注,您可能希望选择与类名不冲突的对象名。i、 e映射片段。这可能会让人困惑,而且您可能会意外地导入错误的命名空间。