實現 Java 介面

如果 java 庫包含應該由使用者實現的介面(例如,點選 View.IOnClickListener 或 callbacks 之類的監聽器),則實現類必須直接或間接地從 Java.Lang.ObjectJava.Lang.Throwable 繼承。這是一個常見錯誤,因為打包步驟只是列印一個容易被忽略的警告:

型別’MyListener’實現 Android.Runtime.IJavaObject 但不從 Java.Lang.Object 繼承。它不受支援。

錯誤

使用此實現將導致意外行為。

class MyListener : View.IOnClickListener
{
    public IntPtr Handle { get; }

    public void Dispose()
    {            
    }

    
    public void OnClick(View v)
    {
        // ...
    }
}

正確

class MyListener : 
    Java.Lang.Object, // this is the important part
    View.IOnClickListener
{       
    public void OnClick(View v)
    {
        // ...
    }
}