0

我使用谷歌地圖V2在我的應用程序,但是當我試圖創建SupportMapFragment一個物體onActivityCreated()這種方法是沒有得到所謂有人請 幫我 這裏是我的代碼,谷歌Android Mapv2空指針異常

@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; 
} 
+0

發佈你的logcat會更有幫助als O操作。 – GrIsHu

+0

我想你應該從'onCreateView()'方法中寫出'onActivityCreated()'方法。 – GrIsHu

回答

0

您應該知道Fragments的生命週期,以及onCreateView()onActivityCreated()方法在「碎片」中的用途。

onCreateView():

在這裏,我們膨脹的佈局或簡單地創建視圖,並且,如果你做任何事情,需要引用到活動不這樣做,例如創建對話框,訪問視圖活動等,因爲,這個地方並不保證託管活動是全功能

onActivityCreated():

這種方法的地方意味着創建我們的託管活動的意見和託管活動是功能性的,這是完成所有活動相關任務的正確位置。

onActivityCreated()當創建片段的活動時調用並實例化此片段的視圖層次結構。一旦這些部分到位,它就可以用來進行最終的初始化,例如檢索視圖或恢復狀態。對於使用setRetainInstance(boolean)來保留實例的片段也很有用,因爲此回調告訴片段何時與新活動實例完全關聯。這是在onCreateView(LayoutInflater,ViewGroup,Bundle)之後和onStart()之前調用的。