Orarend/OrarendAndroidApp/EditActivity.cs
NorbiPeti d7bd486071 Számos TODO elvégezve, javítások - Minden jó
- For ciklus az egy időben tartott órákhoz
- Ha nem sikerül a betöltés, null-t ad vissza
- Most már elmenti az óra csoportját is
- Az órarendlista most már rendesen frissül
- Most már nem ír teljes stack trace-t, ha hálózati hiba miatt nem tudott frissíteni
- Megszünteti az óra kijelölését órarendváltáskor/frissítéskor
- Egy TextView használata a kiválasztott órához
- Csoport megjelenítése
- A szerkesztés után megfelelően frissül a felület
- Órarend törlés működik
2017-02-20 01:14:57 +01:00

93 lines
No EOL
3.6 KiB
C#

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.Views;
using Android.Widget;
using Orarend;
using Android.Graphics;
namespace OrarendAndroidApp
{
[Activity(Label = "AddActivity", Theme = "@android:style/Theme.Holo.Light")]
public class EditActivity : Activity
{
private bool add;
private int index;
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.EditLayout);
Title = (add = Intent.Extras.GetBoolean("add")) ? "Hozzáadás" : "Szerkesztés";
index = Intent.Extras.GetInt("index");
var osztálySpinner = FindViewById<Spinner>(Resource.Id.osztálySpinner);
osztálySpinner.Adapter = new ArrayAdapter(this, Resource.Layout.simple_list_item_1, API.Osztályok);
if (!add)
{
var órarend = API.Órarendek[index];
FindViewById<EditText>(Resource.Id.névEditText).Text = órarend.Név;
int ix = Array.IndexOf(API.Osztályok, órarend.Osztály);
/*for (int i = 0; i < API.Osztályok.Length; i++)
{
var o = API.Osztályok[i];
}*/
osztálySpinner.SetSelection(ix);
FindViewById<EditText>(Resource.Id.csoportokEditText).Text = órarend.Csoportok.Aggregate((a, b) => a + " " + b);
}
FindViewById<Button>(Resource.Id.saveButton).Click += SaveButtonClick;
var deleteButton = FindViewById<Button>(Resource.Id.deleteButton);
if (add)
deleteButton.Visibility = ViewStates.Gone;
else
{
deleteButton.SetBackgroundColor(Color.DarkRed);
deleteButton.Click += DeleteButtonClick;
Intent.Extras.PutBoolean("deleted", false);
}
}
private void DeleteButtonClick(object sender, EventArgs e)
{
new AlertDialog.Builder(this).SetTitle("Törlés").SetMessage("Biztosan törlöd ezt az órarendet?")
.SetPositiveButton("Igen", (s, ea) =>
{ //Törlés
API.Órarendek.RemoveAt(index);
var intent = new Intent(Intent);
intent.PutExtra("deleted", true);
((AlertDialog)s).Dismiss();
((AlertDialog)s).Dispose();
API.ÓrarendMentés(OpenFileOutput("orarend", FileCreationMode.Private));
SetResult(Result.Ok, intent);
Finish();
}).SetNegativeButton("Nem", (s, ea) =>
{
((AlertDialog)s).Dismiss();
((AlertDialog)s).Dispose();
}).Show();
}
private void SaveButtonClick(object sender, EventArgs e)
{
var név = FindViewById<EditText>(Resource.Id.névEditText).Text;
var osztály = API.Osztályok[FindViewById<Spinner>(Resource.Id.osztálySpinner).SelectedItemPosition];
var csoportok = FindViewById<EditText>(Resource.Id.csoportokEditText).Text;
if (!add)
{
var órarend = API.Órarendek[index];
órarend.Név = név;
órarend.Osztály = osztály;
órarend.Csoportok = csoportok.Split(' ');
}
else
API.Órarendek.Add(new Órarend(név, osztály, csoportok));
API.ÓrarendMentés(OpenFileOutput("orarend", FileCreationMode.Private));
SetResult(Result.Ok, Intent);
Finish();
}
}
}