0

Monodroid / Xamarin.Android 独有的事件处理程序(即 AdapterView.ItemClick)是为了方便使用现有的 Android 侦听器(AdapterView.setOnItemClickListener()),以便它们可以相互任意互换,或者它们是否提供某种类型解决方法还是什么?

无论哪种情况,我都无法弄清楚EventHandler 中的 object 参数是什么(即sender ) ,并且在任何地方都找不到关于它的文档。

AndapterView.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 ??
}

因此,我想假设sender相当于parentview

在所有 Monodroid 专有 EventHandlers 中分配给什么发件人是否有约定?

我也非常感谢一些文档,因为我在这里找不到它:http ://androidapi.xamarin.com/?link=T%3aAndroid.Widget.AdapterView并且我对 Reflector 的试用版用完了(否则我d看我自己)。

谢谢你。

4

1 回答 1

0

sender是被单击视图的包含父级(因此,在这种情况下,它将是一个AdapterView)。

来自相关 Android 侦听器的参数打包在args中

谢谢斯拉克斯!

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;
    }
}
于 2013-08-14T14:33:21.423 回答