Xamarin的.android:在c#中使用监听器

本文关键字:监听器 android Xamarin | 更新日期: 2023-09-27 18:04:18

我有一个用java写的android库,我想把它翻译成Xamarin android c#,但是我在使用监听器时遇到了一个问题。

例如,在java中,为按钮使用OnClick侦听器的方法是:
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
    // Perform action on click
}
});

但是在c#中,没有new View.IOnClickListener()这样的东西。

我知道我应该用

button.Click+= (o,e) => {
 // Perform action on click
};

但我不是在谈论这个事件,Android中有更复杂的监听器,如gestredetector和ValueAnimator.AnimatorUpdateListener。在Android Java中,它们以相同的方式添加(匿名类)。

这些匿名类型在c#中是如何使用的?包括类和接口?以及如何在c#中使用与java相同的方式?

Xamarin的.android:在c#中使用监听器

我认为情况会有所不同。在大多数情况下,OnClickListener将转换为Click事件,但手势涉及更多。有关更多信息,请参阅帮助文档;这里有一个很好的手势示例,例如下面的侦听器示例:

public class Activity1 : Activity, GestureDetector.IOnGestureListener
{
   public bool OnDown(MotionEvent e)
   {
   }
   public bool OnFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY)
   {
   }
   public void OnLongPress(MotionEvent e) {}
   public bool OnScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY)
   {
   }
   public void OnShowPress(MotionEvent e) {}
   public bool OnSingleTapUp(MotionEvent e)
   {
       return false;
   }
}