EasyTracker类型中的方法getInstance(Context)不适用

时间:2014-01-26 18:43:42

标签: android google-analytics

我正在尝试使用谷歌分析跟踪OnClick事件:

ImageView info = (ImageView) findViewById(R.id.imageView9);
        info.setOnClickListener(new View.OnClickListener()
        {
            public void onClick(View v) {

        Intent info = new Intent(getApplicationContext(),Odot.class);
        startActivity(info);

        EasyTracker easyTracker = EasyTracker.getInstance(this);
        easyTracker.send(MapBuilder
            .createEvent(
                "UI Action", // Event category (required)
                "Button Pressed", // Event action (required)
                "play", // Event label
                 null) // Event value
            .build()
         );

            }
        });

并收到错误:

The method getInstance(Context) in the type EasyTracker is not applicable for the arguments (new View.OnClickListener(){})

问题是什么?很抱歉这样的问题,我正在学习...... 谢谢。

2 个答案:

答案 0 :(得分:0)

在问题之上有两行代码:getApplicationContext()

通常,要引用内部类的父级,请使用ParentClassName.this而不是引用内部类实例的this

答案 1 :(得分:0)

如果您在内部类中使用this,则将引用该内部类(在代码new View.OnClickListener(){}中)。

如果你在一个活动中(我认为你的情况),你应该致电ActivityClass.this。通过这种方式,您将引用活动的实例(传递活动正在使用的上下文)。否则,您可以传递使用getApplicationContext()

返回的上下文