Xamarin:将EventListener从Java翻译成C#for Android
我正试图找到一种方法,将以下代码片段转换为来自java的c#xamarin: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
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你能帮我一下吗?