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.