4

サービスインターフェイスを作成しました:

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

そのインターフェイスを Android と iOS の両方に実装しました。コンテキストは、メッセージ ダイアログを表示するために Android コンテキストが必要な Android でのみ使用されます。IoC によって注入されるように、このインターフェイスを ViewModel に渡します。私の問題は、WebService を呼び出して戻り値を処理する、プラットフォームに依存しない ViewModel にあります。エラー状態の戻り値をチェックし、メッセージ ダイアログを表示する必要があります。iOS は UIAlertView を表示するためにコンテキストを必要としませんが、Android では、Android コンテキストを取得して最初の引数として渡すにはどうすればよいですか?

ViewModel から簡単な情報ダイアログを表示する簡単な方法はありますか?

4

1 に答える 1

18

WebBrowserTask のソースを調べた後、次の方法でいつでも現在のアクティビティを取得できるようです。

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

そのため、それを渡す必要はありませんが、Android での IMessageDialogService の実装でそれを取得し、それを使用してメッセージ ダイアログを表示します。

于 2013-05-21T00:25:26.297 に答える