0

我从适配器创建了一个 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

4

3 回答 3

2

如果要覆盖OnListItemClickin MainActivity,则必须继承该活动,ListActivity而不是普通的 old Activity

此外,请确保Listview您的 xml 中的 id 为“@android:id/list”(或者list如果它在代码中)。

您可以遵循一个非常好的指南:使用数据填充 ListView

于 2013-03-08T16:35:46.010 回答
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);
}
于 2013-03-07T14:19:41.550 回答
1

您需要删除覆盖,然后在您的设置中的某个地方,您需要将您的方法连接到列表中的单击事件。

通常这样做是这样的:

myList.OnClick += new ClickEventHandler(myMethodName);

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

于 2013-03-07T14:40:54.147 回答