private void ArtistAdapter_ItemClick(object sender, int e) { ViewModel.PropertyChanged -= ViewModel_PropertyChanged; var details = FragmentManager.FindFragmentById(Resource.Id.artistDetailFragment) as ArtistDetailFragment; ViewModel.SelectedArtist = ViewModel.Artists[e]; if (details == null) { // Make new fragment to show this selection. details = ArtistDetailFragment.NewInstance(ViewModel.SelectedArtist); // Execute a transaction, replacing any existing // fragment with this one inside the frame. var ft = FragmentManager.BeginTransaction(); ft.Replace(Resource.Id.content_frame, details, "ArtistFragTag"); ft.SetTransition((int)FragmentTransit.FragmentOpen); ft.AddToBackStack("ArtistFragTag"); ft.Commit(); } else { // Otherwise we need to launch a new Activity to display // the dialog fragment with selected artist. var intent = new Intent(); intent.SetClass(Activity, typeof(ArtistDetailFragment)); intent.PutExtra("current_artist", JsonConvert.SerializeObject(ViewModel.SelectedArtist)); StartActivity(intent); } }
public static ArtistDetailFragment NewInstance(MArtist selectedArtist) { var detailsFrag = new ArtistDetailFragment { Arguments = new Bundle() }; detailsFrag.Arguments.PutString("current_artist", JsonConvert.SerializeObject(selectedArtist)); return(detailsFrag); }