不能够引用((MainActivity)getApplication())了解getTracker(MainActivity.TrackerName.APP_TRACKER)。 [英] Not able to reference ((MainActivity) getApplication()).getTracker(MainActivity.TrackerName.APP_TRACKER);
问题描述
我想谷歌分析在我的应用集成及继起的这里的教程一切都设置:
我有延伸活动,并贴有标签3片段,我初始化code在这一活动的MainActivity这样的:
私有静态最后弦乐PROPERTY_ID =UA-XXXXXX; //日志TAG
私有静态最后弦乐TAG =MyApp的; 公共静态INT GENERAL_TRACKER = 0; 公共枚举TrackerName {
APP_TRACKER,
GLOBAL_TRACKER,
ECOMMERCE_TRACKER,
} HashMap的< TrackerName,跟踪> mTrackers =新的HashMap< TrackerName,跟踪>(); 公共MainActivity(){
超();
} 同步跟踪了解getTracker(TrackerName trackerId){
如果(!mTrackers.containsKey(trackerId)){ Google分析分析= GoogleAnalytics.getInstance(本);
跟踪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); }
返回mTrackers.get(trackerId);
}
现在的标签之一,我试图做的:
((MainActivity)getApplication())了解getTracker(MainActivity.TrackerName.APP_TRACKER)。
不过,我得到以下内容:
无法从应用程序转换为MainActivity在code以上线。任何提示吗?我试图用它的片段具有以下签名:
公共类FragmentTab1扩展片段
如果你调用这个片段里,也许你需要调用getActivity呢?
((MainActivity)getActivity())了解getTracker(MainActivity.TrackerName.APP_TRACKER)。
I am trying to integrate Google Analytics in my application and following a tutorial from here Everything is setup:
I have a MainActivity which extends Activity and has three Tab Fragments attached, I initialize the code in this Activity like:
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);
}
Now in one of the Tabs I am trying to do:
((MainActivity) getApplication()).getTracker(MainActivity.TrackerName.APP_TRACKER);
However I get the following:
Cannot cast from Application to MainActivity in the above line of code. Any hints? The fragment I am trying to use it in has the following signature:
public class FragmentTab1 extends Fragment
If you are calling this inside the fragment, perhaps you need to call getActivity instead?
((MainActivity) getActivity()).getTracker(MainActivity.TrackerName.APP_TRACKER);
这篇关于不能够引用((MainActivity)getApplication())了解getTracker(MainActivity.TrackerName.APP_TRACKER)。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!