私は自分のアプリケーションに Google アナリティクスを統合しようとしており、ここからのチュートリアルに従っていますすべてがセットアップされています:
アクティビティを拡張し、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);
}
今、私がやろうとしているタブの1つで:
((MainActivity) getApplication()).getTracker(MainActivity.TrackerName.APP_TRACKER);
ただし、次のようになります。
上記のコード行では、Application から MainActivity にキャストできません。ヒントはありますか?私が使用しようとしているフラグメントには、次の署名があります。
public class FragmentTab1 extends Fragment