【发布时间】:2019-01-02 15:19:46
【问题描述】:
Observable 类已经可以使用,但我仍在努力使用 IObserver。
在“IObserver”的 Xamarin 文档中,它说我只需为 interface IObserver 实现 Update() 方法。
我的问题:
-
当我添加
: IObserver时,我得到一个错误,我没有实现这两种方法:public IntPtr Handle => throw new NotImplementedException(); public void Dispose() { throw new NotImplementedException(); }为什么我需要这些方法,它们的用途是什么? Xamarin 文档中未提及它们。
当我添加这些方法时,我收到以下错误消息: 错误 XA4212:类型
firstTry3.bluetoothConnectionActivity/deviceFoundObserver实现Android.Runtime.IJavaObject但不继承Java.Lang.Object或Java.Lang.Throwable。不支持。当我在更新方法中添加
override时,编译器说没有合适的方法可以覆盖
这是我的代码:
public class deviceFoundObserver : IObserver
{
bluetoothConnectionActivity mActivity;
public deviceFoundObserver(bluetoothConnectionActivity a)
{
mActivity = a;
}
//function is called from subject observable whenever a change happened
public override void Update(Observable observable, Java.Lang.Object data) //perhaps arguments like this: Observable observable, Object data
{
//there could be other messages as well, so first check wheather it is the right call from observer
if ((string)data == deviceName)
{
mActivity.buttonStartEKG.Visibility = ViewStates.Visible;
Log.Info(constants.tag, MethodBase.GetCurrentMethod().Name + ": Observable called update function in Observer");
}
}
}
我认为我在使用观察者的方式上有问题。谁能帮帮我?
【问题讨论】:
标签: c# android xamarin.android observer-pattern