Экспорт / Импорт настроек Xamarin.Essentials - PullRequest
1 голос
/ 17 января 2020

Я искал быстрый / простой способ импорта и экспорта объекта Preferences, предоставляемого Xamarin.Essentials. Есть предложения?

Ответы [ 2 ]

1 голос
/ 18 января 2020

Согласно вашему описанию, вы хотите сохранить данные в настройках и получить данные из настроек, я прав? если да, пожалуйста, посмотрите следующий код:

using Xamarin.Essentials;
  private void Btn1_Clicked(object sender, EventArgs e)
    {
        Preferences.Set("key1", "this is test");
    }

    private void Btn2_Clicked(object sender, EventArgs e)
    {
        var myValue = Preferences.Get("key1","");
    }

Более подробную информацию о Xamarin.Essentials: Настройки, пожалуйста, посмотрите следующую статью:

https://docs.microsoft.com/en-us/xamarin/essentials/preferences?tabs=android

https://www.c-sharpcorner.com/article/xamarin-forms-application-preferences-using-xamarin-essentials/

Обновление:

Если вы хотите сохранить все в настройках, я предлагаю вам Можно сериализовать данные, которые вы хотите сохранить, и десериализовать данные, которые вы хотите получить, используя Newtonsoft. Json.

Сначала установите Newtonsoft. Json с помощью пакета Nuget, затем сделайте следующее:

public partial class Page13 : ContentPage
{
   public List<person> persons { get; set; }
    public Page13()
    {
        InitializeComponent();
        persons = new List<person>()
        {
            new person(){username="cherry",age=12},
            new person(){username="barry",age=14}
        };

    }

    private void Btn1_Clicked(object sender, EventArgs e)
    {
        string list = Newtonsoft.Json.JsonConvert.SerializeObject(persons);
        Preferences.Set("key1", list);
    }

    private void Btn2_Clicked(object sender, EventArgs e)
    {
        var myValue = Newtonsoft.Json.JsonConvert.DeserializeObject<List<person>>(Preferences.Get("key1", "")) ;
    }    
}


public class person
{
    public string username { get; set; }
    public int age { get; set; }
}

Я использую List, чтобы сделать пример, но вы можете сериализовать evertthing объект в строку, а затем сохранить эту строку в Preference, строку десериализации в объекте для получения данных.

0 голосов
/ 24 января 2020

Так что мне не удалось найти встроенный способ сделать это. Мне пришлось вручную написать код в моем приложении для go через все мои предпочтения, сериализовать их, и они записали строку на диск. Точно так же для импорта мне пришлось взять сериализованную строку, повторно сериализовать ее, а затем вручную поместить значения обратно в мои настройки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...