方法getApplicationContext()未定义。

16
public void onProviderDisabled(String provider) {
    Toast.makeText(getApplicationContext(), "Gps Disabled", Toast.LENGTH_SHORT);


}

这是我的代码,它显示一个错误并告诉我:“方法getApplicationContext()在类型MyLocationListener中未定义”。

我应该怎么做才能避免这个错误?


3
应该使用活动(Activity)的上下文(Context),而不是使用 getApplicationContext()。 - Raghunandan
2
这个方法是在 Activity 内部吗? - codeMagic
不,它不是一个类,而是实现了LocationListener的类。 - john parker
3
需要向它传递上下文。 - codeMagic
请看我的回答。希望能有所帮助。 - codeMagic
4个回答

34

因为你不在一个Activity中,所以需要向类传递一个Context。在实例化这个类的任何地方,都要传递Activity的上下文。

MyClass myClass = new MyClass(this);

然后在该类中创建一个constructor,接受Context作为参数,并使用它。

public class MyClass {
    Context c;
    public MyClass(Context context) {
         c = context;
     }
}

那么当您需要使用它时

public void onProviderDisabled(String provider) {
    Toast.makeText(c, "Gps Disabled", Toast.LENGTH_SHORT);
}

2

这对我很有效

public class MyClass extends Activity

注:此处为代码,不做翻译。

1
我通过扩展Application类来解决这个问题,我的类是AppController:
public class AppController extends Application{
    ...
}

1
如果您正在使用ContentProvider,请尝试这个。
getContext()

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接