Android Xamarin-无法检测ListView ItemClick事件

Android Xamarin-无法检测ListView ItemClick事件,android,listview,xamarin,xamarin.android,Android,Listview,Xamarin,Xamarin.android,我正在尝试获取列表视图中的项目单击,但无法检测到。我尝试过在BaseAdapter的GetView()方法中实现ClickListener,也尝试过ListView的ItemClick。我没有取得任何成功。这是我的片段 在这个给定的代码片段中,我尝试在GetView()中实现ClickListener 任何帮助都将不胜感激。我只是猜测,但您的UI中是否存在阻止您的项目检测触摸事件的情况?@Yupi我在每个视图中都添加了侦听器代码。但是不能被检测到。但是为什么您要在ListView中的每个视图上实

我正在尝试获取
列表视图中的
项目单击
,但无法检测到。我尝试过在
BaseAdapter
GetView()
方法中实现
ClickListener
,也尝试过
ListView
ItemClick
。我没有取得任何成功。这是我的片段

在这个给定的代码片段中,我尝试在
GetView()中实现
ClickListener


任何帮助都将不胜感激。

我只是猜测,但您的UI中是否存在阻止您的项目检测触摸事件的情况?@Yupi我在每个视图中都添加了侦听器代码。但是不能被检测到。但是为什么您要在ListView中的每个视图上实现Click方法呢?为什么不在ListView的项上呢?因为在您上一次发布的代码中,您正在调用ListView项上的Click方法,但您实际上并没有实现它?或者我遗漏了什么。@Yupi我之所以在每个视图上实现click方法,是因为我只想确保这些视图中的任何一个都可以检测到此事件。但是我没有成功。如果您试图获取单击ListView项目,那么您应该在ListView中使用数据填充事件:
placeList.ItemClick+=placeList\u ItemClick然后您可以调用方法:
void PlaceList_ItemClick(对象发送者,AdapterView.ItemClickEventArgs e){//从列表适配器获取我们的项目var item=this.listAdapter.GetItemAtPosition(e.Position);//使用项目名称制作一个toast,仅显示它被单击toast.MakeText(this,item.name+“clicked!”,ToastLength.Short)。Show();}
public override View GetView(int position, View convertView, ViewGroup parent)
        {
            View view = context.LayoutInflater.Inflate(Resource.Layout.single_row_listview_item, parent, false);

            ImageView photo = view.FindViewById<ImageView>(Resource.Id.photoImageView);
            TextView name = view.FindViewById<TextView>(Resource.Id.nameTextView);
            TextView speciality = view.FindViewById<TextView>(Resource.Id.specialtyTextView);

            Stream stream = context.Assets.Open(places[position].ImageUrl);
            Drawable drawable = Drawable.CreateFromStream(stream, null);
            photo.SetImageDrawable(drawable);

            name.Text = places[position].Name;
            speciality.Text = places[position].Specialty;

            name.Click += delegate
            {
                CommonUtils.showToast(context, "Click on name");
            };

            speciality.Click += delegate
            {
                CommonUtils.showToast(context, "Click on speciality");
            };

            photo.Click += delegate
            {
                CommonUtils.showToast(context, "Click on photo");
            };

            view.Click += delegate
            {
                CommonUtils.showToast(context, "Click on view");
            };



            return view;
        }
placeList.ItemClick += PlaceList_ItemClick;
private void PlaceList_ItemClick(object sender, ItemClickEventArgs e)
{
       Console.WriteLine("item clicked ");
       CommonUtils.showToast(this,"Item clicked");
}