Xamarin:将EventListener从Java翻译成C#for Android

Xamarin:将EventListener从Java翻译成C#for Android,c#,android,xamarin,C#,Android,Xamarin,我正试图找到一种方法,将以下代码片段转换为来自java的c#xamarin: mediaPlayer.setOnCompletionListener(new OnCompletionListener() { public void onCompletion(MediaPlayer mp) { Log.i("Completion Listener","Song Complete"); Toast.makeT

我正试图找到一种方法,将以下代码片段转换为来自java的c#xamarin:

mediaPlayer.setOnCompletionListener(new OnCompletionListener() {

            public void onCompletion(MediaPlayer mp) {

                Log.i("Completion Listener","Song Complete");
                Toast.makeText(context, "Media Completed", Toast.LENGTH_SHORT).show();
            }
        });
这是一个简单的EventHandler,它既存在于java中,也存在于android的.net中。不幸的是,我还没有找到任何正确翻译的方法。你能给我举个确切的例子吗?
谢谢:)

推荐的方法是使用事件,如下面的代码所示

mediaPlayer.Completion += MediaPlayer_Completion;
...
}
private void MediaPlayer_Completion(object sender, EventArgs e)
{
  Android.Util.Log.Info("Completion Listener", "Song Complete");
  Toast.MakeText(context, "Media Completed", ToastLength.Short).Show();
}
如果您仍然缺少C#中的java,并且害怕发生事件,您可以执行以下操作:

C#不支持匿名接口。您需要创建实现IOnCompletionListener的单独类。 例如,它可以是ActivityClass:

public class MyActivity: Activity, IOnCompletionListener
{
       public void OnCompletion(Android.Media.MediaPlayer mp)
        {
            Android.Util.Log.Info("Completion Listener", "Song Complete");
         Toast.MakeText(this, "Media Completed", ToastLength.Short).Show();
        }
...
   {
   ...
    mediaPlayer.SetOnCompletionListener(this);
   ...
   }
}
或者从Java.Lang.Object继承并实现IOnCompletionListener的其他类


如果您正在进行活动,请将“上下文”替换为“this”

谢谢,但我尽量不与代表一起参加。还有,mediaplayer。当一首歌结束播放时,不会触发完成,所以我尽量避免这种情况。太棒了。这回答了我所有的问题。多谢各位much@AccessDenied你能帮我一下吗?