It is because they Views were not destroyed. So OnCreate is not called again. Take a look at the Activity life cycle: http://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle
This will explain it to you. On Fri, Feb 24, 2012 at 1:59 AM, Paul Johnson <[email protected]> wrote: > Hi, > > I have a tabview app in development which on the face of it looks to work, > but it isn't. > > The event for changing the tab works, but the new view isn't showing. If I > click on another tab, that fires. If I go back to the first tab, nothing > fires. The code below explains it... > > [Activity] > public class HomeTab : Activity > { > protected override void OnCreate(Bundle savedInstanceState) > { > base.OnCreate(savedInstanceState); > Console.WriteLine("in home"); > SetContentView(Resource.Layout.main_original); > } > } > [Activity] > public class CalendarTab : Activity > { > protected override void OnCreate(Bundle savedInstanceState) > { > base.OnCreate(savedInstanceState); > Console.WriteLine("in calendar"); > SetContentView(Resource.Layout.five_buttons); > } > } > // > [Activity(Label = "OQHRA", MainLauncher = true, > Theme="@android:style/Theme.NoTitleBar", Icon = "@drawable/icon")] > public class Activity1 : TabActivity > { > public int screenNo = -1; // quick hack > protected override void OnCreate(Bundle bundle) > { > base.OnCreate(bundle); > SetContentView(Resource.Layout.main_original); > ListView listView = FindViewById<ListView>(Resource.Id.listView); > string[] falco = > Resources.GetStringArray(Resource.Array.frontpage); > listView.Adapter = new ArrayAdapter<string>(this, > Resource.Layout.listview_layout, falco); > listView.ItemClick +=new > EventHandler<ItemEventArgs>(listView_ItemClick); > ImageView image = FindViewById<ImageView>(Resource.Id.imgBack); > image.Focusable = true; > image.Clickable = true; > image.Click += image_Click; > TabHost.TabSpec spec; > Intent intent; > intent = new Intent(this, typeof(HomeTab)); > intent.AddFlags(ActivityFlags.NewTask); > spec = TabHost.NewTabSpec("tabHome"); > spec.SetIndicator("Home", > Resources.GetDrawable(Resource.Drawable.ic_tabs_home)); > spec.SetContent(intent); > TabHost.AddTab(spec); > intent = new Intent(this, typeof(CalendarTab)); > intent.AddFlags(ActivityFlags.NewTask); > spec = TabHost.NewTabSpec("tabCalendar"); > spec.SetIndicator("Calendar", > Resources.GetDrawable(Resource.Drawable.ic_tabs_cal)); > spec.SetContent(intent); > TabHost.AddTab(spec); > intent = new Intent(this, typeof(RaceTab)); > intent.AddFlags(ActivityFlags.NewTask); > spec = TabHost.NewTabSpec("tabRaceInfo"); > spec.SetIndicator("Race Info", > Resources.GetDrawable(Resource.Drawable.ic_tabs_race)); > spec.SetContent(intent); > TabHost.AddTab(spec); > intent = new Intent(this, typeof(NewsTab)); > intent.AddFlags(ActivityFlags.NewTask); > spec = TabHost.NewTabSpec("tabNews"); > spec.SetIndicator("News", > Resources.GetDrawable(Resource.Drawable.ic_tabs_news)); > spec.SetContent(intent); > TabHost.AddTab(spec); > TabHost.CurrentTab = 0; > } > > When you click a tab, it puts in the console which tab has been pressed - if > I click on the first tab, home is printed, second gives calendar and so on. > Go to any tab and back to home, nothing is printed. > > Any ideas why the contentview isn't showing or why the event only fires > once? > > Thanks > > Paul > > > _______________________________________________ > Monodroid mailing list > [email protected] > > UNSUBSCRIBE INFORMATION: > http://lists.ximian.com/mailman/listinfo/monodroid -- Med Venlig Hilsen / With Best Regards Tomasz Cielecki http://ostebaronen.dk _______________________________________________ Monodroid mailing list [email protected] UNSUBSCRIBE INFORMATION: http://lists.ximian.com/mailman/listinfo/monodroid
