Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在xamarin android上选择listview时如何获取项目?_Listview_Xamarin_Xamarin.android_Selecteditem - Fatal编程技术网

在xamarin android上选择listview时如何获取项目?

在xamarin android上选择listview时如何获取项目?,listview,xamarin,xamarin.android,selecteditem,Listview,Xamarin,Xamarin.android,Selecteditem,TracksByGenres.cs string[] items = new string[] { "Alternative Rock","Classical"} lst.ItemClick += delegate(object sender, AdapterView.ItemClickEventArgs e) { FragmentTransaction fragmentTx=this.FragmentManager.BeginTransaction(); Tracks

TracksByGenres.cs

string[] items = new string[] { "Alternative Rock","Classical"}

lst.ItemClick += delegate(object sender, AdapterView.ItemClickEventArgs e) {    
    FragmentTransaction fragmentTx=this.FragmentManager.BeginTransaction();
    TracksByGenres fragTrack=new TracksByGenres();
    //get our item from listview

    fragmentTx.Replace(Resource.Id.fragmentContainer,fragTrack,.....);  
    fragmentTx.AddToBackStack(null);
    fragmentTx.Commit();
};

如何从Xamarin.Android上的
列表视图
中获取所选项目,并创建返回旧片段的后退按钮?

列表片段
子类中覆盖
OnListItemClick
以接收单击的项目

public async override void OnActivityCreated(Bundle savedInstancesState)
{
    base.OnActivityCreated (savedInstancesState);
    // what do I write?
}
Android.App.ListFragment.OnListItemClick方法

选择列表中的项目时,将调用此方法


项目ClickEventArgs
位置将告诉您所选项目的索引

public class myListFragment : ListFragment
{
    string[] data =  { "Alternative Rock","Classical" } ;

    protected override void OnCreate (Bundle bundle)
    {
       base.OnCreate (bundle);
       ArrayAdapter adapter = new ArrayAdapter (this,
       Resource.Layout.TextViewItem, data);
       ListAdapter = adapter;
    }

    protected override void OnListItemClick (ListView l, View v,
    int position, long id)
    {
       base.OnListItemClick (l, v, position, id);
       Toast.MakeText (this, data [position],
       ToastLength.Short).Show ();
    }        
}

只需为ListView.ItemClick创建一个方法

lst.ItemClick += delegate(object sender, AdapterView.ItemClickEventArgs e) {

  var selected = items[e.Position];
}
在该方法中,您可以检索已单击项的索引

mListView.ItemClick += MListView_ItemClick;

我使用片段。非活动I更新了答案,覆盖
onListFragment
子类中的
OnListItemClick
如何从不同的fragment.FragmentTx.Replace(Resource.Id.fragmentContainer,FragmentTrack,items[e.Position])获取项目[e.Position];
void MListView_ItemClick(object sender, AdapterView.ItemClickEventArgs e)
    {
        Toast.MakeText(Application.Context, e.Position, ToastLength.Short).Show();
    }