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相同的方式?
我认为情况会有所不同。在大多数情况下,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;
}
}