2

次のJavaイベントハンドラーコードに相当するC#MonoforAndroidの記述に固執しています。

public class Player extends ListActivity
{
    private ImageView list;//basically this is a buttona

    private void SetupButtonListeners()
    {
        list.setOnClickListener(new OnClickListener()
        {
             public void onClick(View v)
             {
                  //do stuff
             }
        });
    }
    /*
       more stuff here
    */
}

API REF:http ://androidapi.xamarin.com/?link=T%3aAndroid.Widget.Button

4

2 に答える 2

4

他の回答に示されているようにクリックリスナーを設定することはできますが、Javaで行われる方法と同様に、MonoforAndroidで行う方法としてはお勧めできません。C#には匿名のクラス定義がないため、Mono for Androidは実際にこれらのリスナーインターフェイスをイベントに変換します。これにより、より優れたAPIが実現します。たとえば、この場合、任意のクラスClickに存在するイベントを使用できます。View

ListView list;

list.Click += delegate(object sender, EventArgs e)
                      {
                          // do stuff
                      };
于 2012-09-05T12:00:42.003 に答える
2

ドキュメントによると、C#には匿名のインターフェイス実装はありません。これは必要なものです。

public virtual void SetOnClickListener (View.IOnClickListener l)

すでにいくつかのヘルパークラスがない限り、このインターフェイスを実装するクラスを作成して渡す必要があります。既存のヘルパークラスが見つからない場合は、クラスを作成し、OnClickメソッドの実装としてデリゲートを受け取るヘルパー関数を作成できるはずです。

于 2012-09-05T04:58:25.607 に答える