[mono-android] tabbed interface with fragment

Wally McClure theevilprogrammer at hotmail.com
Wed Nov 30 15:21:16 EST 2011


Thanks Jon.  I was able to get this working.  
 Wally> From: jonp at xamarin.com
> Date: Wed, 30 Nov 2011 14:07:35 -0500
> To: monodroid at lists.ximian.com
> Subject: Re: [mono-android] tabbed interface with fragment
> 
> Any chance you could file a bug with the project? I don't know what Frag1 or Frag2 are supposed to be, nor do I know what Resource.Layout.ab is supposed to be, etc.
> 
> Thanks,
>  - Jon
> 
> On Nov 21, 2011, at 11:06 AM, Wally McClure wrote:
> 
> > I'm trying to write a simple example using a tabbed interface in the actionbar.  When a user clicks on a tab, a new fragment will load in the main screen of the device.  When I click the 2nd tab, I am getting an error.  in DDMS, I get an error shown below.  I'm not sure if the error is due to frag1, frag2, or something else.  Any suggestion are appreciated.
> > 
> > error:
> > 11-21 10:55:40.220: E/AndroidRuntime(3911): java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
> > 
> > code:
> >     [Activity(Label = "HCTabbedInterface", MainLauncher = true, Icon = "@drawable/icon")]
> >     public class Activity1 : Activity, ActionBar.ITabListener
> >     {
> >         int count = 1;
> >         private ActionBar ab;
> >         private View mActionBarView;
> >         
> >         protected override void OnCreate(Bundle bundle)
> >         {
> >             base.OnCreate(bundle);
> > 
> >             // Set our view from the "main" layout resource
> >             SetContentView(Resource.Layout.Main);
> > 
> >             // Get our button from the layout resource,
> >             // and attach an event to it
> >             ab = this.ActionBar;
> >             ab.AddTab(ab.NewTab().SetText(tab1).SetTabListener(this));
> >             ab.AddTab(ab.NewTab().SetText(tab2).SetTabListener(this));
> > 
> >             mActionBarView = LayoutInflater.Inflate(
> >                 Resource.Layout.ab, null);
> >             ab.CustomView = mActionBarView;
> >             ab.DisplayOptions = ActionBarDisplayOptions.ShowCustom | ActionBarDisplayOptions.UseLogo;
> >             ab.NavigationMode = ActionBarNavigationMode.Tabs;
> >             ab.SetDisplayShowHomeEnabled(true);
> >         }
> > 
> >         public void OnTabReselected(ActionBar.Tab tab, FragmentTransaction ft)
> >         {
> >         }
> > 
> >         private const string tab1 = "Tab 1";
> >         private const string tab2 = "Tab 2";
> >         private Frag1 f1;
> >         private Frag2 f2;
> >         public void OnTabSelected(ActionBar.Tab tab, FragmentTransaction ft)
> >         {
> >             try
> >             {
> >                 switch (tab.Text)
> >                 {
> >                     case tab1:
> >                         if (f1 == null)
> >                         {
> >                             f1 = FragmentManager.FindFragmentById<Frag1>(Resource.Id.fg);
> >                         }
> >                         else
> >                         {
> >                             ft.Replace(Resource.Id.fg, f1);
> >                         }
> >                         break;
> >                     case tab2:
> >                         if (f2 == null)
> >                         {
> >                             f2 = (Frag2)Fragment.Instantiate(this, (new Frag2()).Class.Name);
> >                         }
> >                         ft.Replace(Resource.Id.fg, f2);
> >                         break;
> >                 }
> >             }
> >             catch (System.Exception sysExc)
> >             {
> >                 Android.Util.Log.Error("tab", String.Format("Error info: {0}", sysExc.Message));
> >             }
> >         }
> > 
> >         public void OnTabUnselected(ActionBar.Tab tab, FragmentTransaction ft)
> >         {
> >         }
> >     }
> > 
> > 
> > _______________________________________________
> > Monodroid mailing list
> > Monodroid at lists.ximian.com
> > 
> > UNSUBSCRIBE INFORMATION:
> > http://lists.ximian.com/mailman/listinfo/monodroid
> 
> _______________________________________________
> Monodroid mailing list
> Monodroid at lists.ximian.com
> 
> UNSUBSCRIBE INFORMATION:
> http://lists.ximian.com/mailman/listinfo/monodroid
 		 	   		  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.ximian.com/pipermail/monodroid/attachments/20111130/b4b75590/attachment.html 


More information about the Monodroid mailing list