Настройки приложения

Последнее обновление: 13.01.2021

Каждая система предполагает механизм настроек пользователя, которые можно сохранять для последующего использования. Например, на Android это объект Preference, в iOS это объект CFPreferences, а в Windows 10 настройки доступны через объект ApplicationData. В Xamarin Forms для работы с настройками мы можем использовать функциональность из пакета Xamarin Essentials, который добавляется в проект Xamarin Forms по умолчанию.

Применять плагин довольно просто. Все настройки доступны через свойство Preferences, который предоставляет для работы с настройками следующие методы:

  • void Set(key, value): сохранение значения value по ключу key

  • string Get(key, defaultValue): получение значения по ключу key. Если же настроек с таким ключом нет, то возвращается значение по умолчанию - defaultValue

  • void Remove(key): удаляет настройку с ключом key

  • void Clear(): удаляет все настройки

  • bool ContainsKey(key): возвращает true, если имеется настройка с ключом key

Например, для сохранения применяется метод Set():

// сохраняем значение Tom по ключу name
Preferences.Set("name", "Tom");

Получение сохраненного значения по ключу:

string name = Preferences.Get("name");
// если объекта нет используем значение по умолчанию - "не известно"
string name2 = Preferences.Get("name", "не известно");

Удаление:

Preferences.Remove("name");

Для примера определим на странице текстовое поле для ввода, кнопку для сохранения введенного значения в настройках и метку для вывода из настроек:

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="HelloApp.MainPage">
  <StackLayout>
    <Label x:Name="nameLabel" />
    <Entry x:Name="nameBox" />
    <Button Text="Сохранить" Clicked="OnClick" />
  </StackLayout>
</ContentPage>

В файле кода страницы пропишем получение и сохранение данных в настройках:

using Xamarin.Forms;
using System;
using Xamarin.Essentials;

namespace HelloApp
{
    public partial class MainPage : ContentPage
    {
        public MainPage()
        {
            InitializeComponent();
        }

        protected override void OnAppearing()
        {
            string name = Preferences.Get("name", "не установлено");
            nameLabel.Text = name;
            base.OnAppearing();
        }

        private void OnClick(object sender, EventArgs e)
        {
            string value = nameBox.Text;
            nameLabel.Text = value;
            Preferences.Set("name", value);
        }
    }
}

При первой загрузке приложения, когда настройки еще не установлены, метка будет выводить значение по умолчанию. После установки значения метка будет брать это значение из настроек:

Preferences в Xamarin Forms
Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850