2013-05-21 2 views
3

Я создал интерфейс сервиса:MvvmCross: Как передать контекст Android в MvxCommand?

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?

ответ

15

После осмотра источник для WebBrowserTask, это выглядит, как я всегда могу взять текущую активность по:

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

, так что я не должен пройти его, но у меня есть реализация IMessageDialogService на Android возьмите его и используйте для отображения диалогового окна сообщений.

Смежные вопросы