片段中的LocationListener

我可以在片段中将LocationListener与LocationManager一起使用。 实际上当我使用它时,它给了我这行lm.requestLocationUpdates(LocationManager.GPS_PROVIDER,0,0,(android.location.LocationListener)这个)的错误; 当我没有将第四个参数强制转换为android.location.LocationListener时,它给了我错误..

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"); } } } 

我认为您错误地实现了com.google.android.gms.location.LocationListener接口,该接口只有一个抽象方法onLocationChanged

您应该实现具有4个抽象方法的android.location.LocationListener

onLocationChanged(Location location)

onProviderDisabled(String provider)

onProviderEnabled(String provider)

onStatusChanged(String provider, int status, Bundle extras)