Android谷歌Mapv2空指针异常

时间:2013-04-15 03:49:23

标签: android android-fragments android-tabhost android-maps-v2 supportmapfragment

我在我的应用程序中使用谷歌地图v2,但是当我尝试使用SupportMapFragment创建onActivityCreated()的对象时,此方法不会被称为某人请求 帮我 这是我的代码,

@Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {

        super.onCreateView(inflater, container, savedInstanceState);
        Log.d("err", "onCreateView");
        view = inflater
                .inflate(R.layout.todays_deal_location, container, false);
    mFragment = new SupportMapFragment() {
                 @Override
                 public void onActivityCreated(Bundle savedInstanceState) {
                 super.onActivityCreated(savedInstanceState);
                 Log.d("err", "onActivityCreated");
                 GoogleMap map = mFragment.getMap();
                 }
                 };
       return view;
}

2 个答案:

答案 0 :(得分:0)

你应该知道Fragments的生命周期以及`片段中onCreateView()onActivityCreated()方法的目的。

<强> onCreateView():

这里我们夸大布局或简单地创建视图,如果你必须做任何引用Activity的事情,不要像创建对话框,访问Activity等的视图那样做,因为这个地方不能确保托管活动功能齐全

<强> onActivityCreated():

此方法位置表示我们的托管活动视图已创建且托管活动正常运行,这是执行所有与活动相关的任务的正确位置。

onActivityCreated()在创建片段的活动时调用,并且实例化此片段的视图层次结构。一旦这些部分就位,它可用于进行最终初始化,例如检索视图或恢复状态。对于使用setRetainInstance(boolean)保留其实例的片段也很有用,因为此回调告诉片段当它与新活动实例完全关联时。这是在onCreateView(LayoutInflater,ViewGroup,Bundle)之后和onStart()之前调用的。

答案 1 :(得分:0)

这是如何正确地将SupportMapFragment添加到您的片段:

http://code.google.com/p/gmaps-api-issues/issues/detail?id=5064#c1

注意:

  1. R.layout.layout_with_map不包含片段
  2. 使用getChildFragmentManager()