MvvmCross:如何将Android上下文传递给MvxCommand?

4

我创建了一个服务接口:

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

我已经在Android和iOS上实现了该接口。在Android中,只有当需要显示消息对话框时才使用上下文(Context)。我将此接口传递给我的ViewModel,以便由IoC注入。我的问题出现在平台独立的ViewModel中,它调用Web服务并处理返回值。它检查返回值是否存在错误,并需要显示一个消息对话框。iOS不需要任何上下文来显示UIAlertView,但在Android上,如何获取一个Android上下文作为第一个参数?
是否有更简单的方法从ViewModel中显示一个简单的信息对话框?
1个回答

18

检查WebBrowserTask的源代码后,似乎我总是可以通过以下方式获取当前Activity:

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

因此我不必传递它,而是在Android上使用我的IMessageDialogService实现来获取它并用于显示消息对话框。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接