C# 未调用listview中的xamarin项单击

C# 未调用listview中的xamarin项单击,c#,android,listview,xamarin,onitemclick,C#,Android,Listview,Xamarin,Onitemclick,我使用了listView,当我尝试触发itemclick函数时,它不会触发。 在过去的3个小时里我一直在想,请帮忙 课堂上: li = (ListView)FindViewById(Resource.Id.listView1); li.ItemClick += Li_ItemClick1; li.ItemLongClick += Li_ItemLongClick; li.Adapter = adapter; 在xml中: <ListView android:layout_

我使用了listView,当我尝试触发itemclick函数时,它不会触发。 在过去的3个小时里我一直在想,请帮忙

课堂上:

li = (ListView)FindViewById(Resource.Id.listView1);
li.ItemClick += Li_ItemClick1;
li.ItemLongClick += Li_ItemLongClick;
li.Adapter = adapter;
在xml中:

<ListView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/listView1"
        android:layout_marginTop="10dp"
        />

必须在listview适配器的OnBindViewHolder方法上设置单击事件。请尝试以下代码:

((MyView)holder).mMainView.Click -= Li_ItemClick1;
((MyView)holder).mMainView.Click += Li_ItemClick1;
另外,这也是取消订阅和订阅方法的一个好方法,以避免多次设置。 “MyView”是处理程序的类,更具体地说,处理程序是使用列表项的属性构建的类

下面是MyView类的一个示例:

 public class MyView : RecyclerView.ViewHolder
    {
       
        public View mMainView { get; set; }
        public TextView mName { get; set; }
        public TextView data { get; set; }
        public ImageView image { get; set; }
        public MyView(View view) : base(view)
        {
            mMainView = view;
            mName = view.FindViewById<TextView>(Resource.Id.text1);
            image = view.FindViewById<ImageView>(Resource.Id.foto);
            data = view.FindViewById<TextView>(Resource.Id.data);
        }
        public override string ToString()
        {
            return base.ToString() + " '" + mName.Text;
        }
    }
公共类MyView:RecyclerView.ViewHolder
{
公共视图mMainView{get;set;}
公共文本视图mName{get;set;}
公共文本视图数据{get;set;}
公共图像视图图像{get;set;}
公共MyView(视图):基本(视图)
{
mMainView=视图;
mName=view.findviewbyd(Resource.Id.text1);
image=view.findviewbyd(Resource.Id.foto);
data=view.findviewbyd(Resource.Id.data);
}
公共重写字符串ToString()
{
返回base.ToString()+“'”+mName.Text;
}
}
以下是一个可能有用的链接:


注意:RecycleView是一种ListView(我建议使用RecycleView,因为它只是ListView,但经过改进,使您更容易执行您想要的操作)。但是如果您想使用ListView,此链接仍然很有用。

我可以很好地触发itemclick事件。您可以尝试再次注册此事件或直接使用委托。如果仍然不起作用,请检查适配器和布局。如果可能的话,您能为我们提供适配器和listview的布局吗?