我很难为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 REF:http://androidapi.xamarin.com/?link=T%3aAndroid.Widget.Button
答案 0 :(得分:4)
虽然您可以设置一个点击监听器,如另一个答案中所示,类似于在Java中完成的方式,但这不是在Mono for Android中执行操作的首选方式。由于C#没有匿名类定义,因此Mono for Android实际上将这些侦听器接口转换为事件,从而产生更好的API。例如,在这种情况下,您可以使用任何View
类中出现的Click
事件:
ListView list;
list.Click += delegate(object sender, EventArgs e)
{
// do stuff
};
答案 1 :(得分:2)
根据documentaton,C#中没有匿名接口实现:
public virtual void SetOnClickListener (View.IOnClickListener l)
除非已经有一些辅助类,否则你需要编写实现此接口的类并将其传入。如果找不到现有的类,你应该能够创建辅助函数来创建类并将委托作为实现OnClick方法。