示例#1
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            Toolbar.SetNavigationIcon(Resource.Drawable.ic_cancel);

            Window.SetStatusBarColor(Android.Graphics.Color.ParseColor("#00796B"));

            editName        = FindViewById <EditText>(Resource.Id.edit_category_name);
            editDescription = FindViewById <EditText>(Resource.Id.edit_category_description);

            ArrayAdapter adapter = new ArrayAdapter(this, Android.Resource.Layout.SimpleSpinnerDropDownItem, types);

            adapter.SetDropDownViewResource(Android.Resource.Layout.SimpleSpinnerDropDownItem);
            spinnerCategoryType         = FindViewById <Spinner>(Resource.Id.spinner_category_type);
            spinnerCategoryType.Adapter = adapter;

            // Initialize gridview and handle click events
            gridIcons         = FindViewById <GridView>(Resource.Id.gridviewCategory);
            iconsAdapter      = new IconsAdapter(this, categoryIcons);
            gridIcons.Adapter = iconsAdapter;

            View previousGridItem = null; // The previous selected item
            bool flag             = true;

            gridIcons.ItemClick += (sender, args) =>
            {
                if (flag)
                {
                    previousGridItem = gridIcons.GetChildAt(0);
                    flag             = false;
                }
                if (previousGridItem != args.View)
                {
                    args.View.SetBackgroundResource(Resource.Color.accent);
                    previousGridItem.SetBackgroundResource(0);
                    previousGridItem = args.View;
                }
                iconDrawable = (int)gridIcons.GetItemIdAtPosition(args.Position);
            };

            Bundle extras = Intent.Extras;

            if (extras != null)
            {
                editMode = extras.GetBoolean("EDIT_MODE");
                if (editMode)
                {
                    category             = Newtonsoft.Json.JsonConvert.DeserializeObject <Category>(extras.GetString("CATEGORY_OBJECT"));
                    editName.Text        = category.Name;
                    editDescription.Text = category.Description;
                    spinnerCategoryType.SetSelection(adapter.GetPosition(category.Type.ToString()));
                    gridIcons.Tag = category.Icon;
                }
            }
            else
            {
                category      = new Category();
                gridIcons.Tag = iconDrawable;
            }
        }
示例#2
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            Toolbar.SetNavigationIcon(Resource.Drawable.ic_cancel);

            Window.SetStatusBarColor(Android.Graphics.Color.ParseColor("#00796B"));

            // Initalize text fields
            editName        = FindViewById <EditText>(Resource.Id.edit_account_name);
            editDescription = FindViewById <EditText>(Resource.Id.edit_account_description);

            //Initalize spinner
            ArrayAdapter ad = new ArrayAdapter(this, Android.Resource.Layout.SimpleSpinnerItem, currencies);

            ad.SetDropDownViewResource(Android.Resource.Layout.SimpleSpinnerDropDownItem);
            spinnerCurrency         = FindViewById <Spinner>(Resource.Id.spinner_account_currency);
            spinnerCurrency.Adapter = ad;

            // Initialize gridview and handle click events
            gridIcons         = FindViewById <GridView>(Resource.Id.gridview);
            iconsAdapter      = new IconsAdapter(this, accountIcons);
            gridIcons.Adapter = iconsAdapter;

            View previousGridItem = null; // The previous selected item
            bool flag             = true;

            gridIcons.ItemClick += (sender, args) =>
            {
                if (flag)
                {
                    previousGridItem = gridIcons.GetChildAt(0);
                    flag             = false;
                }
                if (previousGridItem != args.View)
                {
                    args.View.SetBackgroundResource(Resource.Color.accent);
                    previousGridItem.SetBackgroundResource(0);
                    previousGridItem = args.View;
                }
                iconDrawable = (int)gridIcons.GetItemIdAtPosition(args.Position);
            };

            // If edit mode -> pre-fill fields
            Bundle extras = Intent.Extras;

            if (extras != null)
            {
                editMode = extras.GetBoolean("EDIT_MODE");
                if (editMode)
                {
                    account              = Newtonsoft.Json.JsonConvert.DeserializeObject <Account>(extras.GetString("ACCOUNT_JSON"));
                    editName.Text        = account.Name;
                    editDescription.Text = account.Description;
                    spinnerCurrency.SetSelection(ad.GetPosition(Utils.Utils.GetCurrencyFullName(account.Currency)));
                    gridIcons.Tag = account.Icon;
                }
            }
            else
            {
                account       = new Account();
                gridIcons.Tag = iconDrawable;
            }
        }