我有一个谷歌地图类
class MapActivity : FragmentActivity(), OnMapReadyCallback, LocationListener, GoogleApiClient.ConnectionCallbacks,
GoogleApiClient.OnConnectionFailedListener {
但是我只使用了实现提供的一些必需功能。 所有未使用的方法我只是放在类的底部,如下所示:
override fun onConnected(p0: Bundle?) {
checkLocationPermission()
val mLocationProvider = FusedLocationProviderClient(this)
mLocationProvider.lastLocation.addOnCompleteListener { task ->
goToLocation(task.result.latitude, task.result.longitude)
}
}
override fun onStatusChanged(provider: String?, status: Int, extras: Bundle?) {
//To change body of created functions use File | Settings | File Templates.
}
override fun onProviderEnabled(provider: String?) {
//To change body of created functions use File | Settings | File Templates.
}
override fun onProviderDisabled(provider: String?) {
//To change body of created functions use File | Settings | File Templates.
}
override fun onConnectionSuspended(p0: Int) {
//To change body of created functions use File | Settings | File Templates.
}
override fun onConnectionFailed(p0: ConnectionResult) {
//To change body of created functions use File | Settings | File Templates.
}
有没有更好的方法来解雇这些不需要的功能?
答案 0 :(得分:1)
不,你不能做任何事情(除了按建议创建另一个类......),这是接口隔离原则的典型权衡。
无论如何,如果您需要侦听位置更改更新,请使用
import com.google.android.gms.location.LocationListener;
告诉你只实施
void onLocationChanged(Location var1);
我还建议您使用#region
并折叠编辑器中的代码,以便直观地清理您的课程。
希望它有所帮助。
答案 1 :(得分:0)
您必须实施Interface
的所有方法。
但是,是的,在代码清理的情况下,您可以额外增加一个class
来实现interface
的所有方法。并将该课程与原作一起使用。
Click here了解更多信息。