我目前正在尝试在类上实现ILocationListener以接收GPS更新 - 这不是一个Activity,只是一个普通的C#类.
作为ILocationListener合同的一部分,我需要支持I JavaObject:
public IntPtr Handle
{
get { throw new NotImplementedException(); }
}
Run Code Online (Sandbox Code Playgroud)
我该怎么办?
另外,有没有好的文档和/或博客文章讨论如何在MonoDroid中绑定C#类和Java对象 - 如果我能找到这些文档,那么我可能不需要问这样的问题和我我们希望也能写出更好的代码.
谢谢
Gre*_*les 55
取自Xamarin的文档:
有时您可能需要实现Android界面,例如Android.Content.IComponentCallbacks.由于所有Android类和接口都扩展了Android.Runtime.IJavaObject接口,因此出现了问题:我们如何实现IJavaObject?
上面回答了这个问题:所有Android类型需要实现IJavaObject的原因是MonoDroid有一个Android可调用包装器提供给Android,即给定类型的Java代理.由于monodroid.exe只查找Java.Lang.Object子类,而Java.Lang.Object实现了IJavaObject,因此答案很明显:子类Java.Lang.Object
在这些情况下,基本上你应该总是继承Java.Lang.Object,因为实现IJavaObject本身并不会真正起作用,因为Android的Mono不会生成可调用的包装器.
如果它有帮助,我在这里有一个实现ILocationListener的例子.它直接在活动上实现它,但您可以从Java.Lang.Object而不是Activity继承.
归档时间: |
|
查看次数: |
10283 次 |
最近记录: |