2015-05-14 8 views
5

Kann ich LocationListener mit LocationManager in Fragment verwenden. Eigentlich, wenn ich es benutze, gibt es mir einen Fehler in dieser Zeile lm.requestLocationUpdates (LocationManager.GPS_PROVIDER, 0,0, (android.location.LocationListener) this); und wenn ich wirft nicht den vierten Parameter auf android.location.LocationListener es gibt mir Fehler ..LocationListener im Fragment

import android.content.Context; 
import android.location.Location; 
import android.location.LocationManager; 
import android.os.Bundle; 
import android.support.v4.app.Fragment; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.TextView; 


public class Speedometer extends Fragment implements LocationListener { 

    TextView txt; 
    public Speedometer(){} 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) { 

     View rootView = inflater.inflate(R.layout.speedometer, container, false); 

     txt=(TextView)rootView.findViewById(R.id.speedometer); 

     LocationManager lm= (LocationManager)getActivity().getSystemService(Context.LOCATION_SERVICE); 
     lm.requestLocationUpdates(LocationManager.GPS_PROVIDER,0,0, (android.location.LocationListener) this); 

     return rootView; 
    } 

    @Override 
    public void onLocationChanged(Location location) { 

     if(location==null){ 
      txt.setText("-.- m/s"); 
     } 
     else { 
      float nCurrentSpeed=location.getSpeed(); 
      txt.setText(nCurrentSpeed+"m/s"); 
     } 
    } 
} 
+0

Verwendung ohne Guss 'lm.requestLocationUpdates (LocationManager.GPS_PROVIDER, 0,0, this);' – Kushal

+0

ohne Guss es mir Fehler gibt – Bisma

Antwort

12

Ich glaube, Sie fälschlicherweise implementiert com.google.android.gms.location.LocationListener Schnittstelle, die nur eine 1 abstrakte Methode hat onLocationChanged

Sie sollten implementieren eher android.location.LocationListener die 4 abstrakte Methoden

onLocationChanged(Location location),

onProviderDisabled(String provider) hat,

onProviderEnabled(String provider),

onStatusChanged(String provider, int status, Bundle extras)

+0

Danke so viel, habe ich es und mein Fehler wird entfernt – Bisma

+0

Cool! Es ist irgendwie verwirrend herauszufinden, wann man das eine oder andere benutzt ... – Supercelo

Verwandte Themen