簡體   English   中英

Xamarin.android:在C#中使用偵聽器

[英]Xamarin.android : using listeners in C#

我有一個用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中有更復雜的偵聽器,例如GestureDetector和ValueAnimator.AnimatorUpdateListener。 在Android Java中,這些添加方式相同(匿名類)。

這些匿名類型在C#中如何使用? 包括類和接口? 以及如何在C#中使用與Java使用相同的方式?

我認為每種情況都會有所不同。 在大多數情況下,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;
   }
}

偵聽器使您可以更好地控制用戶交互。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM