2017-11-17 14 views
0

나는 내가 단지 구현에 의해 제공되는 필수 기능 중 일부를 사용하지만 구글 맵 클래스필수이지만 비어있는 구현은 어떻게해야합니까?

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

부모 클래스를 만들어 해당 인터페이스를 구현할 수 있으므로 부모 클래스에는 이러한 빈 메서드가 있지만 자식 클래스는 깨끗합니다. – diegoveloper

+0

@diegoveloper 그리고 나서이 클래스들을 구현하는 대신에? 그게 해결책이라고 생각해. 다른 건 없나요? 별도로 지정하지 않으면 클래스에 super 구현을 사용하도록 지시하는 쉬운 빠른 수정이 필요했습니다. –

답변

1

아무 것도 할 수 없습니다 (제안 된대로 다른 클래스를 만드는 것 외에는 ...). 이것은 인터페이스 분리 원칙의 유형 거래와 상충됩니다. 어쨌든

당신은 위치 변경 업데이트 사용을 수신해야하는 경우를 알려

import com.google.android.gms.location.LocationListener; 

구현하는 유일한

void onLocationChanged(Location var1); 
나는 또한 당신이 청소 편집기에 #region 및 축소 코드를 사용하는 것이 좋습니다

너의 수업을 시각적으로.

희망이 있습니다.

0

Interface의 모든 메소드를 구현해야합니다.

하지만 코드 정리의 경우 모든 방법을 구현하기 위해 interface을 추가로 하나씩 가질 수 있습니다. 그리고 그 수업을 원본과 함께 사용하십시오.

Click here 자세한 내용은