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);
            }
        }
Exemplo n.º 2
0
        public static ArtistDetailFragment NewInstance(MArtist selectedArtist)
        {
            var detailsFrag = new ArtistDetailFragment {
                Arguments = new Bundle()
            };

            detailsFrag.Arguments.PutString("current_artist", JsonConvert.SerializeObject(selectedArtist));
            return(detailsFrag);
        }