Monodroid / Xamarin.Android独有的EventHandlers(即AdapterView.ItemClick)是否为了方便而不是股票Android Listeners(AdapterView.setOnItemClickListener()),以便它们可以互相任意互换,或者它们是提供某种工作或什么?
在任何一种情况下,我在查找EventHandler 中的对象参数(即发件人)时遇到问题,并且无法在任何地方找到文档。
AndapterView.ItemClick的EventHandler定义为:
public void ItemClickEventHandler(object sender, ListView.ItemClickEventArgs args)
{
// what is sender ?
}
和Android特定的Listener看起来像:
public void onItemClick(AdapterView parent, View view, int position, long id)
{
// sender == parent ??
// sender == view ??
}
因此,我想假设发件人相当于父或查看。
是否有针对所有Monodroid独家EventHandler分配发件人的约定?
我也非常感谢这方面的一些文档,因为我在这里找不到它:http://androidapi.xamarin.com/?link=T%3aAndroid.Widget.AdapterView并且我对Reflector的试用用完了(否则我会自己看看)。
谢谢。
答案 0 :(得分:0)
发件人是所点击视图的包含父级(因此,在这种情况下,它将是 AdapterView )。
相关Android侦听器的参数打包在 args
中感谢SLAK !!!
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;
}
}