onlisttitemclick(..)被标记为覆盖,但没有找到合适的方法来覆盖

本文关键字:覆盖 方法 记为 onlisttitemclick | 更新日期: 2023-09-27 18:02:50

我已经从适配器创建了一个ListView,但是我想选择项目,这在新的活动中给出了关于这个项目的信息。

这是我的代码:

        protected override void OnListItemClick(ListView listview, 
                                            View view, int pos, long id)
    {
        var selectedvalue = sw_items[pos];
        var i = new Intent(this, typeof(Activity1));
        i.PutExtra("selectedvalue", selectedvalue);
        StartActivity(i);
    }

但是我得到这个错误:

MainActivity.OnListItemClick(Android.Widget.ListView, Android.Views.View, int, long)' is marked as an override but no suitable method found to override (CS0115)

MainActivity是一个Activity

如何解决这个问题,或者是否有其他方法在Activity

onlisttitemclick(..)被标记为覆盖,但没有找到合适的方法来覆盖

如果您想在MainActivity中覆盖OnListItemClick,则必须从ListActivity继承活动,而不是简单的旧Activity

此外,确保Listview在你的xml是与id "@android:id/list"(或list,如果它是在代码)。

有一个很好的指南你可以遵循:用数据填充ListView

您需要删除覆盖,然后在设置的某个地方,您需要将您的方法与列表上的click事件挂钩。

通常是这样做的:

myList.OnClick += new ClickEventHandler(myMethodName);

但是我没有使用monodroid,所以可能会有一些细微的差别。

尝试如下:

@Override
protected void OnListClick(ListView listview, View view, int pos, long id) {
    var selectedvalue = sw_items[pos];
    var i = new Intent(this, typeof(Activity1));
    i.PutExtra("selectedvalue", selectedvalue);
    StartActivity(i);
}