protected override async void OnCreate(Bundle bundle) { base.OnCreate(bundle); SetTheme(Resource.Style.MyTheme); Window.AddFlags(WindowManagerFlags.DrawsSystemBarBackgrounds); SetContentView(Resource.Layout.Form_Room_List); drawerLayout = FindViewById <DrawerLayout>(Resource.Id.drawer_layout); toolbar = FindViewById <Android.Support.V7.Widget.Toolbar>(Resource.Id.toolbar); SetSupportActionBar(toolbar); this.SupportActionBar.SetHomeButtonEnabled(true); this.SupportActionBar.SetDisplayHomeAsUpEnabled(true); var navigationView = FindViewById <NavigationView>(Resource.Id.nav_view); navigationView.NavigationItemSelected += NavigationView_NavigationItemSelected; navigationView.SetCheckedItem(Resource.Id.nav_rooms); var drawerToggle = new ActionBarDrawerToggle(this, drawerLayout, toolbar, Resource.String.open_drawer, Resource.String.close_drawer); drawerLayout.SetDrawerListener(drawerToggle); drawerToggle.SyncState(); Rooms_Finder rf = new Rooms_Finder(); string text = Intent.GetStringExtra("Data") ?? "Data not available"; List <Campus_Harburg_Core.Struct_Room> list; try { list = rf.dataToList(text); } catch (Exception ex) { list = new List <Struct_Room>(); Struct_Room msg = new Struct_Room(); msg.building = "Fehler"; msg.name = "Während der Verarbeitung der Daten ist leider ein Fehler aufgetreten!"; msg.time = ex.Message; list.Add(msg); } list.Sort((s1, s2) => s1.building.CompareTo(s2.building)); listView = FindViewById <ListView>(Resource.Id.List); listView.Adapter = new ListAdapter_Rooms(this, list); listView.ItemClick += OnListItemClick; }
async void OnOKButton(object sender, EventArgs eventArgs) { Rooms_Finder rf = new Rooms_Finder(); Struct_SearchConfig_Room cfg = new Struct_SearchConfig_Room(); Boolean isError = false; Spinner t_start = (Spinner)FindViewById(Resource.Id.spinner1); Spinner t_end = (Spinner)FindViewById(Resource.Id.spinner2); Spinner t_dur = (Spinner)FindViewById(Resource.Id.spinner3); Spinner t_cmin = (Spinner)FindViewById(Resource.Id.spinner4); Spinner t_cmax = (Spinner)FindViewById(Resource.Id.spinner5); CheckBox t_pool = (CheckBox)FindViewById(Resource.Id.checkBox); cfg.cap_min = getSpinnerTextInt(t_cmin); cfg.cap_max = getSpinnerTextInt(t_cmax); cfg.duration = getSpinnerIndex(t_dur) + 1; cfg.date_day = selectedDay.Day; cfg.date_month = selectedDay.Month; cfg.date_year = selectedDay.Year; cfg.time_end = getSpinnerIndex(t_end); cfg.time_start = getSpinnerIndex(t_start); if (t_pool.Checked) { cfg.withPool = true; } else { cfg.withPool = false; } if (cfg.time_start == 24) { isError = true; msgBox("Ungültige Eingabe", "Die Startzeit muss vor 24 Uhr liegen."); } if (cfg.time_start > cfg.time_end) { isError = true; msgBox("Ungültige Eingabe", "Die Startzeit muss vor der Endzeit liegen."); } if (cfg.cap_min > cfg.cap_max) { isError = true; msgBox("Ungültige Eingabe", "Die minimale Anzahl an Plätzen darf nicht größer sein als das Maximum."); } if (cfg.duration > (cfg.time_end - cfg.time_start)) { isError = true; msgBox("Ungültige Eingabe", "Der gewünschte Zeitraum ist für die Dauer zu kurz."); } if (cfg.time_end == 0) { isError = true; msgBox("Ungültige Eingabe", "Die Endzeit darf nicht 0 Uhr sein.--> 24 Uhr"); } if (!isError) { dlg = ProgressDialog.Show(this, "Bitte warten", "Daten werden abgefragt...", true); Room_Result res = await rf.getResult(cfg); List <Campus_Harburg_Core.Struct_Room> list = res.list; if (!res.ok) { msgBox("Abfrage fehlgeschlagen", "Die Abfrage der Daten vom Server ist fehlgeschlagen. Möglicherweise ist kein Raum mit gewünschten Kriterien verfügbar oder die Internetverbindung wurde unterbrochen"); } else { var activity2 = new Intent(this, typeof(Activity_Room_List)); activity2.PutExtra("Data", rf.dataToString(list)); StartActivity(activity2); } } dlg.Dismiss(); }