Android监听器VS Monodroid事件处理程序
本文关键字:事件处理 程序 Monodroid VS 监听器 Android | 更新日期: 2023-09-27 18:27:35
Monodroid/Xamarin.Android独有的EventHandlers(即AdapterView.ItemClick)是为了方便起见,而不是为了方便现有的Android监听器(AdapterView.setOnItemClickListener()),以便它们可以任意交换,还是提供某种变通方法?
无论哪种情况,我都很难弄清楚EventHandler中的对象参数是什么(即sender),也无法在任何地方找到相关文档。
ItemClick的EventHandler定义为:
public void ItemClickEventHandler(object sender, ListView.ItemClickEventArgs args)
{
// what is sender ?
}
Android特定的监听器看起来像:
public void onItemClick(AdapterView parent, View view, int position, long id)
{
// sender == parent ??
// sender == view ??
}
因此,我想假设发送方等同于父或视图
是否有一个约定,在所有Monodroid独占的EventHandlers中分配给哪个发送方
我也非常感谢一些文档,因为我在这里找不到:http://androidapi.xamarin.com/?link=T%3aAndroid.Widget.AdapterView我对Reflector的试用期结束了(否则我会看起来像自己)。
谢谢。
sender是被单击的视图的包含父级(因此,在本例中,它将是AdapterView)。
来自相关安卓监听器的参数打包在args中
感谢SLaks
public class ItemClickEventArgs : EventArgs
{
private AdapterView parent;
private View view;
private int position;
private long id;
public AdapterView Parent { get { return this.parent; } }
public View View { get { return this.view; } }
public int Position { get { return this.position; } }
public long Id { get { return this.id; } }
public ItemClickEventArgs(AdapterView parent, View view, int position, long id)
{
this.parent = parent;
this.view = view;
this.position = position;
this.id = id;
}
}