4

我创建了一个服务接口:

public interface IMessageDialogService
{
    void ShowDialog(object context,string title,string message,string buttonTitle);
}

我已经在 Android 和 iOS 上实现了该接口。上下文仅在需要 Android 上下文来显示消息对话框的 Android 上使用。我将此接口传递给我的 ViewModel 以由 IoC 注入。我的问题出在我的平台独立 ViewModel 中,它调用 WebService 然后处理返回值。它检查错误条件的返回值并需要显示一个消息对话框。iOS 不需要任何上下文来显示 UIAlertView,但在 Android 上,我如何获取一个 Android 上下文作为第一个参数传入?

有没有更简单的方法从 ViewModel 显示一个简单的信息对话框?

4

1 回答 1

18

在检查了 WebBrowserTask 的源之后,看起来我总是可以通过以下方式获取当前的 Activity:

var activity = Mvx.Resolve<IMvxAndroidCurrentTopActivity> ().Activity;

所以我不必将它传递下去,而是让我在 Android 上实现的 IMessageDialogService 抓取它并使用它来显示消息对话框。

于 2013-05-21T00:25:26.297 回答