实现 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)
    {
        // ...
    }
}