对于MainActivity类型,未定义getFragmentManager()方法

时间:2014-01-21 05:08:03

标签: android android-fragments

我正在尝试使用Google API在Android中实现Google Map,但我收到了错误

  

对于MainActivity类型

,未定义getFragmentManager()方法

整个MainActivity代码如下:

public class MainActivity extends Activity {

private GoogleMap map;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();

  }
}

3 个答案:

答案 0 :(得分:7)

从Honey Comb开始提供碎片,因此目标API应> = 11

如果你想在早期版本的android中使用片段,你应该使用android support v7 库。在这种情况下,您的MainActivity将扩展 ActionBarActivity ,而不是活动。

如果您使用的是Android 支持v4 ,则您的MainActivity应扩展 FragmentActivity ,您需要调用 getSupportFragmentManager()而不是 getFragmentManager()

我希望它有所帮助!

答案 1 :(得分:0)

如果您想使用getFragmentManager(),则需要延长FragmentActivity而不是Activity

public class MainActivity extends FragmentActivity {

private GoogleMap map;

 @Override
 protected void onCreate(Bundle savedInstanceState) 
 {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);

 map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
 }
}

答案 2 :(得分:0)

确保添加此导入

import com.google.android.gms.maps.MapFragment;

在onCreate方法之前添加此注释

@SuppressLint("NewApi")

希望这会有所帮助!