2017-11-14 10 views
0

ich bin ein n00b in Android Codierung, heute möchte ich versuchen, den Ortungsdienst zu verwenden.Nicht statische Variable kann nicht aus einem statischen Kontext referenziert werden?

Ich habe eine einfache Klasse und eine einfache Hauptleitung eingerichtet, nur um Längen- und Breitengrad zu haben.

Aber wenn ich versuche, den Bau zu rufen, um die lange retrive und Breite Android Studio den Fehler Pop-out:

„Fehler: (33, 16) Fehler: nicht-statische Variable Breite kann nicht von einem referenziert werden statischer Kontext“

Das ist mein Standort Klasse

public class AppLocationManager implements LocationListener { 

    private LocationManager locationManager; 
    private String latitude; 
    private String longitude; 
    private Criteria criteria; 
    private String provider; 

    public AppLocationManager(Context context) { 
     locationManager = (LocationManager) context 
       .getSystemService(Context.LOCATION_SERVICE); 
     criteria = new Criteria(); 
     criteria.setAccuracy(Criteria.ACCURACY_FINE); 
     provider = locationManager.getBestProvider(criteria, true); 
     locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,1,0,this); 
     setMostRecentLocation(locationManager.getLastKnownLocation(provider)); 
    } 

    private void setMostRecentLocation(Location lastKnownLocation) { 

    } 

    public String getLatitude() { 
     return latitude; 
    } 

    public String getLongitude() { 
     return longitude; 
    } 

    /* 
    * (non-Javadoc) 
    * 
    * @see 
    * android.location.LocationListener#onLocationChanged(android.location. 
    * Location) 
    */ 
    @Override 
    public void onLocationChanged(Location location) { 
     double lon = (double) (location.getLongitude());/// * 1E6); 
     double lat = (double) (location.getLatitude());// * 1E6); 

//  int lontitue = (int) lon; 
//  int latitute = (int) lat; 
     latitude = lat + ""; 
     longitude = lon + ""; 

    } 

    /* 
    * (non-Javadoc) 
    * 
    * @see 
    * android.location.LocationListener#onProviderDisabled(java.lang.String) 
    */ 
    @Override 
    public void onProviderDisabled(String arg0) { 
     // TODO Auto-generated method stub 

    } 

    /* 
    * (non-Javadoc) 
    * 
    * @see 
    * android.location.LocationListener#onProviderEnabled(java.lang.String) 
    */ 
    @Override 
    public void onProviderEnabled(String arg0) { 
     // TODO Auto-generated method stub 

    } 

    /* 
    * (non-Javadoc) 
    * 
    * @see android.location.LocationListener#onStatusChanged(java.lang.String, 
    * int, android.os.Bundle) 
    */ 
    @Override 
    public void onStatusChanged(String arg0, int arg1, Bundle arg2) { 
     // TODO Auto-generated method stub 

    } 

} 

Antwort

0

nicht-statische Eigenschaften zuzugreifen und Methode, die Sie diese Klasse Objekt. Um zu erfahren, this so thread lesen:

AppLocationManager appLocationManager=new AppLocationManager(context); 
String latitude=appLocationManager.getLatitude(); 
String longitude=appLocationManager.getLongitude(); 
0

Erklären Sie Ihre Variable als statisch wie folgt:

private static String latitude; 
private static String longitude; 
Verwandte Themen