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

时间:2013-05-21 00:12:21

标签: mvvmcross

我创建了一个服务接口:

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显示简单的信息对话框?

1 个答案:

答案 0 :(得分:18)

在检查WebBrowserTask的源代码后,看起来我总能通过以下方式获取当前的Activity:

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

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