private void ColorSpinner_ItemSelected(object sender, AdapterView.ItemSelectedEventArgs e) { AccentColor selectedColor = AccentColors.GetAccentColors()[e.Position]; if (selectedColor != currentAccentColor && !ignoreSelection) { currentAccentColor = selectedColor; colorLayout.SetBackgroundColor(GetColor(currentAccentColor)); editor.PutString(ACCENT_COLOR_KEY, AccentColors.GetResource(currentAccentColor)).Commit(); } ignoreSelection = false; }
public void OnSharedPreferenceChanged(ISharedPreferences sharedPreferences, string key) { switch (key) { case ACCENT_COLOR_KEY: AccentColor newColor = AccentColors.GetIdFromResource(sharedPreferences.GetString(key, ACCENT_COLOR_DEFAULT)); if (newColor != currentAccentColor) { currentAccentColor = newColor; colorLayout.SetBackgroundColor(GetColor(currentAccentColor)); ignoreSelection = true; colorSpinner.SetSelection(AccentColors.GetAccentColors().IndexOf(currentAccentColor)); } break; } }
protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); SetContentView(Resource.Layout.activity_main); settings = PreferenceManager.GetDefaultSharedPreferences(this); editor = settings.Edit(); //editor.Clear().Commit(); prefListener = new PrefListener(this); colorSpinner = FindViewById <Spinner>(Resource.Id.colorSpinner); colorLayout = FindViewById <FrameLayout>(Resource.Id.colorLayout); currentAccentColor = AccentColors.GetIdFromResource(settings.GetString(ACCENT_COLOR_KEY, ACCENT_COLOR_DEFAULT)); AccentColor[] colors = AccentColors.GetAccentColors().ToArray(); colorSpinner.Adapter = new ArrayAdapter <AccentColor>(this, Resource.Layout.colorspinner_item, colors); colorLayout.SetBackgroundColor(GetColor(currentAccentColor)); colorSpinner.ItemSelected += ColorSpinner_ItemSelected; }