Esempio n. 1
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            //Aufruf der Base-Methode (Grundlegende Activity-Initialisierung)
            base.OnCreate(savedInstanceState);
            //Verknüpfen und Öffenen der Layout-Datei (im layout-Ordner)
            SetContentView(Resource.Layout.activity_todo);
            //Zuweisung des Controls zur Property
            LstV_Todos = FindViewById <ListView>(Resource.Id.LstV_Todo);

            //Abrufen und Deserialisieren der Daten per statischer Service-Klasse
            Todos = Service.JsonService.GetTodos();

            //Beispiel für codeseitiges 'Abhaken' eines Listeneintrags
            Todos[0].Completed = true;

            //Speichern der Titel in einem String-Array
            string[] todoTitles = Todos.Select(x => x.Title).ToArray();

            //Zuweisung eines Adapters zum ListView. Dieser definiert die Zuordnung der StringArray-Elementen zu
            //ListViewItems. Er benötigt als Parameter den aktuellen Kontext (this), die Art des ListViewItems im
            //ListView (SimpleListItemChecked) und das anzuzeigende Array (todoTitles).
            LstV_Todos.Adapter = new ArrayAdapter(this, Android.Resource.Layout.SimpleListItemChecked, todoTitles);

            //ChoiceMode definiert die Möglichkeit, ob mehrere Elemente gleichzeitig ausgewählt werden können
            LstV_Todos.ChoiceMode = ChoiceMode.Single;

            //Schleife, welche kontrolliert, ob die Items 'Complited' sind und diese gegebenenfalls im ListView 'abhakt'
            for (int i = 0; i < Todos.Count; i++)
            {
                if (Todos[i].Completed)
                {
                    //'Abhaken' der Items mittels der SetItemChecked()-Methode des ListViews
                    LstV_Todos.SetItemChecked(i, true);
                }
            }

            //Damit die vom Benutzer 'abgehakten' Items auch im Todo-Objekt als 'Complited' markiert werden,
            //muss das ItemClick-Event des ListView belegt sein
            LstV_Todos.ItemClick += ItemClick;
        }
Esempio n. 2
0
 //Methode, zur Übernahme eines manuellen 'Abhakens' in das Model-Objekt
 public void ItemClick(object sender, AdapterView.ItemClickEventArgs e)
 {
     Todos[e.Position].Completed = LstV_Todos.IsItemChecked(e.Position);
 }