在我用这种方式进行长时间点击的那一刻:
button.SetOnLongClickListener(new MyLongClickListener());
public class MyLongClickListener : View.IOnLongClickListener
{
public bool OnLongClick(View v)
{
//do something pretty cool
return true;
}
public IntPtr Handle
{
get { throw new NotImplementedException(); }
}
}
但是,在OnLongClick方法中编写一个简单的一行或两行的课程似乎并不是很聪明。所以我想知道是否有更好的解决方案?
答案 0 :(得分:4)
编写侦听器类的方法是在Java中实现它的方法,这就是为什么它在Mono for Android中暴露出来的原因。也就是说,在Mono for Android中,如果您愿意,可以将LongClickHandler类型的委托分配给LongClick属性。如果你愿意的话。
view.LongClick = onLongClick;
private bool onLongClick(View view)
{
// do some stuff
return true;
}
或
view.LongClick = (clickedView) =>
{
// do some stuff
return true;
};
答案 1 :(得分:1)
请参阅此示例代码:
[Activity(Label = "My Activity", MainLauncher = true)]
public class Activity1 : Activity
{
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
SetContentView(Resource.layout.main);
Button button = FindViewById<Button>(Resource.id.button);
TextView view = FindViewById<TextView>(Resource.id.text);
button.Click += (s, args) => view.Text = "Clicked!";
button.LongClick += (s, args) =>
{
view.Text = "Long click!";
args.ReturnValue = false;
};
}
}