1

我想谷歌Analytics(分析)在我的應用集成及繼起的here一切的教程是設置:無法引用((MainActivity)getApplication())。getTracker(MainActivity.TrackerName.APP_TRACKER);

我有延伸活動,並有連接3個選項卡片段,我初始化代碼在這個活動就像一個MainActivity:

private static final String PROPERTY_ID = "UA-xxxxxx"; 

    //Logging TAG 
    private static final String TAG = "MyApp"; 

    public static int GENERAL_TRACKER = 0; 

    public enum TrackerName { 
     APP_TRACKER, 
     GLOBAL_TRACKER, 
     ECOMMERCE_TRACKER, 
    } 

    HashMap<TrackerName, Tracker> mTrackers = new HashMap<TrackerName, Tracker>(); 

    public MainActivity() { 
     super(); 
    } 

    synchronized Tracker getTracker(TrackerName trackerId) { 
     if (!mTrackers.containsKey(trackerId)) { 

      GoogleAnalytics analytics = GoogleAnalytics.getInstance(this); 
      Tracker t = (trackerId == TrackerName.APP_TRACKER) ? analytics.newTracker(R.xml.app_tracker) 
        : (trackerId == TrackerName.GLOBAL_TRACKER) ? analytics.newTracker(PROPERTY_ID) 
          : analytics.newTracker(R.xml.ecommerce_tracker); 
        mTrackers.put(trackerId, t); 

     } 
     return mTrackers.get(trackerId); 
    } 

現在在標籤中的一個我試圖做的事:

((MainActivity) getApplication()).getTracker(MainActivity.TrackerName.APP_TRACKER); 

但是我得到以下幾點:

無法從應用程序轉換到上面的代碼行中的MainActivity。任何提示?我嘗試使用它的片段有以下簽名:

public class FragmentTab1 extends Fragment 

回答

3

如果您在片段內調用此內容,可能需要調用getActivity來代替?

((MainActivity) getActivity()).getTracker(MainActivity.TrackerName.APP_TRACKER); 
相關問題