Сохранить значение элемента Switch С# Xamarin

174
04 января 2020, 00:30

Задача: сохранить значение элемента Switch при следующих открытиях приложения (если Switch включен однажды, то чтобы оставался включенным и после перезапуска приложения) Мой код, который не работает:

Context context;
Switch SettingsSwitchKMHToMPH;
protected override void OnCreate(Bundle savedInstanceState)
                  {    //остальной код
                    context = Application.Context; 
                    SettingsSwitchKMHToMPH=FindViewById<Switch>(Resource.Id.SettingsSwitchKMHToMPH);
                    SettingsSwitchKMHToMPH.CheckedChange += SettingsSwitchKMHToMPH_CheckedChange;  
                  }
    private void SettingsSwitchKMHToMPH_CheckedChange(object sender, CompoundButton.CheckedChangeEventArgs e)
            {
                ISharedPreferences prefs = PreferenceManager.GetDefaultSharedPreferences(context);
                ISharedPreferencesEditor editor = prefs.Edit();        
                SettingsSwitchKMHToMPH.Checked= prefs.GetBoolean("key_for_kmhtomph", false);
                if (SettingsSwitchKMHToMPH.Checked)
                {
                    SettingsSwitchKMHToMPH.Toggle();
                    Toast.MakeText(context, "Off", ToastLength.Long).Show();
                    editor.PutBoolean("key_for_kmhtomph", false);
                    editor.Apply();                
                }
                else
                {
                 SettingsSwitchKMHToMPH.Toggle();
                    Toast.MakeText(context, "On", ToastLength.Long).Show();
                   editor.PutBoolean("key_for_kmhtomph",true);
                   editor.Apply();
                }
            }
Answer 1

Решение оказалось простым. Просто сделал кнопку "Apply", по нажатию которой записывается значение Switch

     buttonApply.Click += (sender, e) => 
        {
            if (switchKMHToMPH.Checked == true)
            {
                editor.PutBoolean("key_kmhtomph", true);
                editor.Apply();
            }
            else
            {
                editor.PutBoolean("key_kmhtomph", false);
                editor.Apply();
            }
        };
READ ALSO
Создание web-интерфейса прибора на asp.net

Создание web-интерфейса прибора на asp.net

Есть плата с микроконтроллером, которая подключается к компьютеру по com-порту и передает на него данныеНеобходимо реализовать возможность...

151
Отловить UnauthorizedAccessException при обходе папок

Отловить UnauthorizedAccessException при обходе папок

Я создаю подпрограмму для своей основнойЕё суть заключается в защите (шифровании) некоторых чувствительных данных от основной программы,...

124
Значения по умолчанию в моделях EF

Значения по умолчанию в моделях EF

Создал проект на aspnet mvc

142
ScrollViewer поверх дочернего ScrollViewer

ScrollViewer поверх дочернего ScrollViewer

Глобальный скролл прокручивается пока мышкой не попадаешь на область UserContol'a, у которого свой горизонтальный скроллВ итоге чтобы увидеть...

144