2013-05-21 18 views
15
public void onProviderDisabled(String provider) { 
    Toast.makeText(getApplicationContext(), "Gps Disabled", Toast.LENGTH_SHORT); 


} 

Also das ist, was ich habe, und es zeigt einen Fehler an und sagt mir die Methode getApplicationContext() für den Typ MyLocationListener undefiniert istdas Verfahren getApplicationContext() ist nicht definiert

was soll ich dies vermeiden tun Fehler

+2

einen Aktivitätskontext statt getApplicationContext verwenden () – Raghunandan

+2

Ist diese Methode innerhalb einer 'Aktivität'? – codeMagic

+0

Nein, es ist nicht eine Klasse, die LocationListener implementiert –

Antwort

32

Da Sie nicht in einem Activity sind, müssen Sie einen Context an die Klasse übergeben. Überall dort, wo Sie diese Klasse instanziiert geben Ihre Activities context

MyClass myClass = new MyClass(this); 

Dann eine constructor in dieser Klasse erstellen, die Context als param akzeptiert und verwenden, die

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

dann, wenn Sie es

public void onProviderDisabled(String provider) { 
    Toast.makeText(c, "Gps Disabled", Toast.LENGTH_SHORT); 
} 
verwenden müssen
1

Wenn Sie ContentProvider verwenden, versuchen Sie

getContext() 
2

dies für mich gearbeitet

public class MyClass extends Activity

+0

Ich hoffe, dass Sie inzwischen verstanden haben, dass dies eine falsche Antwort ist ... –

1

ich dieses Problem lösen, indem Application-Klasse erstreckt, ist meine Klasse AppController:

public class AppController extends Application{ 
    ... 
}