如何在 xamarin android 上选择列表视图时获取项目?

How to get item when selected listview on xamarin android?

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

TracksByGenres.cs

public async override void OnActivityCreated(Bundle savedInstancesState)
{
    base.OnActivityCreated (savedInstancesState);
    // what do I write?
}

如何从 Xamarin.Android 上的 ListView 中获取所选项目并创建一个后退按钮以 return 旧片段?

在您的 ListFragment 子类中覆盖 OnListItemClick 以接收点击的项目

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

Android.App.ListFragment.OnListItemClick Method

This method will be called when an item in the list is selected.

https://developer.xamarin.com/api/member/Android.App.ListFragment.OnListItemClick/p/Android.Widget.ListView/Android.Views.View/System.Int32/System.Int64/

ItemClickEventArgs Position 会告诉你选中项的索引

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

  var selected = items[e.Position];
}

简单地为ListView.ItemClick

创建一个方法
mListView.ItemClick += MListView_ItemClick;

从该方法中您可以检索被点击项目的索引

void MListView_ItemClick(object sender, AdapterView.ItemClickEventArgs e)
    {
        Toast.MakeText(Application.Context, e.Position, ToastLength.Short).Show();
    }