F#

2016-09-14 21 views
1

Android F#プロジェクトに「Google Play Services - Drive」を使用してGoogleドライブサポートを追加しようとすると、複数の明示的に実装されたインターフェイスタイプエラーにIJavaObjectが含まれています。しかし、GoogleApiClient.IOnConnectionFailedListenerインターフェイスを実装すると、次のメッセージ 'が表示されます。インターフェイスIJavaObject'は、明示的に実装された複数のインターフェイスタイプに含まれています。このインタフェースの明示的な実装を追加してください '。ここで F#

はエラー enter image description here

の画像がどのようにそれを実装するのですか?

+2

同じように他のインターフェイスを実装しましたか? –

+0

@FyodorSoikinはい、それは私がした最初の事、 メンバーthis.Handle = ??? ' と '型GDriveApi()= インタフェースAndroid.Runtime.IJavaObjectのようなものでしたが、それは '返すために私から期待しますネイティブイント。また、公式ドキュメントからは、[自分自身でこのインターフェースを実装することはありません]と言います(https://developer.xamarin.com/api/type/Android.Runtime.IJavaObject/)。最後の提案は 'Java.Lang.Object'から継承することですが、' IOnConnectionFailedListener'は 'IJavaObject 'が実装されることを期待しているので(F#は明示的なインタフェースのみをサポートしています)、 – Semuserable

+1

' JavaObject'では、各メソッドを基本クラスに委譲することでインタフェースを実装できます。 –

答えて

0
type GDriveApi() = 
    inherit Java.Lang.Object() 
    interface Android.Runtime.IJavaObject with 
     member this.Handle = base.Handle 
    interface GoogleApiClient.IOnConnectionFailedListener with 
     member this.OnConnectionFailed result =() 
    interface GoogleApiClient.IConnectionCallbacks with 
     member this.OnConnectionSuspended cause =() 
     member this.OnConnected bundle =()