2017-11-17 4 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で、代わりにこれらのクラスを実装するだけですか? それは解決策だと思います:) 他にもありますか? 特に明記していない限り、スーパー実装を使用するようにクラスに指示するのは、簡単にすばやく修正することを望んでいました。 –

答えて

1

いいえ何もできません(提案したように別のクラスを作成する場合を除き...)。これは、インタフェース分離原則の型のトレードオフです。私はまた、あなたがきれいにエディタ上#regionと崩壊コードを使用することをお勧めだけ

void onLocationChanged(Location var1); 

を実装することを教えてくれとにかく

あなたは場所の変更、更新用に

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

を聞くために必要がある場合あなたのクラスを視覚的に

希望します。

0

Interfaceのすべてのメソッドを実装する必要があります。

しかし、コードクリーニングの場合は、interfaceのすべてのメソッドを実装するための1つの特別なclassを持つことができます。そして、あなたのオリジナルでそのクラスを使用してください。

Click here詳細については、

関連する問題