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

时间:2013-03-07 14:11:03

标签: c# android listview xamarin.android

我已经从适配器创建了一个ListView,但是我想选择一些项目,它们会在新的Activity中提供有关此项目的信息。

这是我的代码:

        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

中是否有其他方法可以解决此问题

3 个答案:

答案 0 :(得分:2)

如果您要覆盖OnListItemClick中的MainActivity,则必须从ListActivity而不是普通的Activity中继承活动。

另外,请确保xml中的Listview的ID为“@android:id / list”(如果是代码,则为list。)

您可以遵循一个非常好的指南:Populating a ListView With Data

答案 1 :(得分:1)

尝试以下方法:

@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);
}

答案 2 :(得分:1)

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

通常情况如下:

myList.OnClick += new ClickEventHandler(myMethodName);

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