使用VS 2012 C#在Xamarin中选择Android Listview项目#

时间:2013-07-11 08:11:57

标签: android xamarin

我正在使用VS 2012在Android应用上工作。实际上,我想实现这个目标:

// lv = My listView Name. 
lv.setOnItemClickListener(new OnItemClickListener() 
{ 
    public void onItemClick(AdapterView<?> myAdapter, View myView, int myItemInt, long mylng) 
    {      
        String selectedFromList =(String) (lv.getItemAtPosition(myItemInt));
    }
});

但是,我没有得到 setOnItemClickListener()事件。原因是,我正在使用 Xamarin 在C#中工作。我想获得 ListView 的选择值或项目。我怎么能这样做?

3 个答案:

答案 0 :(得分:13)

让您的活动实现ListView.IOnItemClickListener,如下所示:

public class SomeActivity: Activity, ListView.IOnItemClickListener

获取您的列表视图的反映:

LsitView LV = FindViewById<ListView>(Resource.Id.id_in_axml);

然后将OnItemClickListner设置为活动,因为我们要实现接口ListView.IOnItemClickListener

lstItems.OnItemClickListener = this;

最后将此添加到您的活动类:

public void OnItemClick(AdapterView parent, View view, int position, long id)
{
//whatever you need it to do goes here.
}

答案 1 :(得分:4)

以下是完整的代码段:

    private List<String>namess;
    private ListView listvieww;
    protected override void OnCreate (Bundle bundle)
    {
        base.OnCreate (bundle);

        SetContentView (Resource.Layout.Main);

        listvieww = FindViewById<ListView> (Resource.Id.listView1);


        namess = new List<String>();

        namess.Add("Security Solution");
        namess.Add("software");
        namess.Add("hardware");
        ArrayAdapter<String> adapter = new ArrayAdapter<String> (this, Android.Resource.Layout.SimpleListItem1,namess);

        listvieww.Adapter = adapter;
        //listvieww.ItemClick += listView_ItemClick;


        listvieww.ItemClick += (object sender, Android.Widget.AdapterView.ItemClickEventArgs e) =>
        {
            string selectedFromList = listvieww.GetItemAtPosition(e.Position).ToString();

            Console.WriteLine( selectedFromList);
        };

    }

答案 2 :(得分:3)

您可以使用ItemClick和委托来放置您的事件代码,如下所示:

lv.ItemClick += delegate(object sender, Android.Widget.AdapterView.ItemClickEventArgs e)
{
    //Your code here
}