Beating the Fragmentation Monster: Listing 5

DetailsFragment.cs.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Android.App;
using Android.Content;
using Android.OS;
using Android.Runtime;
using Android.Util;
using Android.Views;
using Android.Widget;
using Android.Support.V4.App;
namespace com.wallym.sample.fragmentexample
{
    internal class DetailsFragment : Android.Support.V4.App.Fragment
    {
        public static DetailsFragment NewInstance(int playId)
        {
            var detailsFrag = new DetailsFragment { Arguments = new Bundle() };
            detailsFrag.Arguments.PutInt("current_play_id", playId);
            return detailsFrag;
        }
        public int ShownPlayId
        {
            get { return Arguments.GetInt("current_play_id", 0); }
        }
        public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
        {
            if (container == null)
            {
                // Currently in a layout without a container, so no reason to create our view.
                return null;
            }
            var ll = new LinearLayout(Activity);
            var scroller = new ScrollView(Activity);
            var text = new TextView(Activity);
            var iv = new ImageView(Activity);
            var padding = Convert.ToInt32(TypedValue.ApplyDimension(ComplexUnitType.Dip, 4,
            Activity.Resources.DisplayMetrics));
            text.SetPadding(padding, padding, padding, padding);
            iv.SetPadding(padding, padding, padding, padding);
            text.TextSize = 24;
            text.Text = StarTrek.Quotes[ShownPlayId];
            iv.SetImageResource(StarTrek.Images[ShownPlayId]);
            ll.Orientation = Orientation.Vertical;
            ll.AddView(iv);
            ll.AddView(text);
            scroller.AddView(ll);
            return scroller;
        }
    }
}

About the Author

Wallace (Wally) B. McClure has authored books on iPhone programming with Mono/Monotouch, Android programming with Mono for Android, application architecture, ADO.NET, SQL Server and AJAX. He's a Microsoft MVP, an ASPInsider and a partner at Scalable Development Inc. He maintains a blog, and can be followed on Twitter.