2016-04-21 95 views
1
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如何在xamarin android上選擇listview時獲取項目?

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

我怎樣才能獲得所選擇的項目形成ListView上Xamarin.Android並創建一個返回按鈕,將返回舊片段?

回答

0

在你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方法

這種方法將被調用時,在一個項目列表被選中。

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

+0

我使用片段。這不是活動 –

+0

我更新了答案,重寫'ListFragment'子類中的'OnListItemClick' – SushiHangover

1

ItemClickEventArgsPosition會告訴你所選項目的索引

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

    var selected = items[e.Position]; 
} 
+0

如何從不同的fragment.ragmentTx.Replace獲取項目[e.Position](Resource.Id.fragmentContainer,fragTrack,items [e。位置]); –

0

簡單地從方法,你可以在創建ListView.ItemClick

mListView.ItemClick += MListView_ItemClick; 

的方法檢索點擊項目的索引

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