2016-08-28 10 views
0

私はJavaで書かれたアンドロイドライブラリを持っています。これをXamarin android C#に翻訳したいのですが、リスナーを使用する際に問題が発生しています。Xamarin.android:リスナーをC#で使用する

button.setOnClickListener(new View.OnClickListener() { 
public void onClick(View v) { 
    // Perform action on click 
} 
}); 

が、C#で、新しいView.IOnClickListener(のようなもの)が存在しない:例えば

は、Javaで、ボタンのonclickリスナーを使用する方法です。

私は

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

を使用する必要があります知っているが、私は、このイベントの話ではない、GestureDetectorとValueAnimator.AnimatorUpdateListenerのようなアンドロイドでより複雑なリスナーが、あります。 Android Javaでは、これらは同じように追加されます(匿名クラス)。

これらの匿名型はどのようにC#で使用されますか?クラスやインタフェースを含む? C#でJavaが使用するのと同じ方法を使用する方法は?

答えて

0

状況ごとに異なると思います。ほとんどの場合、OnClickListenerはClickイベントに変換されますが、ジェスチャはもう少し複雑です。詳細については、help documentationを参照してください。こうしたそこから取られたこのリスナーの例として、ジェスチャー、良い例があります:

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; 
    } 
} 

リスナーがあなたにユーザーとの対話をより詳細に制御できます。

関連する問題