2

我坚持为 Android 编写 C# Mono,相当于以下 Java 事件处理程序代码:

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 参考:http ://androidapi.xamarin.com/?link=T%3aAndroid.Widget.Button

4

2 回答 2

4

虽然您可以设置一个点击侦听器,如另一个答案中所示,类似于它在 Java 中的完成方式,但这不是在 Mono for Android 中做事的首选方式。由于 C# 没有匿名类定义,Android 的 Mono 实际上将这些侦听器接口转换为事件,从而产生更好的 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 回答