如何在Xamarin表单设置插件中存储列表

时间:2019-02-27 10:25:07

标签: c# xamarin xamarin.forms xamarin.android xamarin.ios

任何人都可以帮助我了解如何在Xamarin表单设置插件中存储列表。

2 个答案:

答案 0 :(得分:2)

在设置插件中,您可以按键值方式存储,因此不能直接存储列表。一种解决方法是,您可以将列表序列化为json字符串,然后可以使用密钥存储该列表。 然后,当您需要返回列表时,可以使用键获取该json字符串并将其反序列化为原始格式。

答案 1 :(得分:1)

“ Xamarin设置”插件已过时,不再维护。它的功能已集成到Xamarin.Essentials中,建议继续使用。

  1. 添加Newtonsoft.Json NuGet PackageXamarin.Essentials NuGet Package

  2. 利用Newtonsoft.Json.JsonConvertList<T>进行序列化/反序列化string,并使用Xamarin.Essentials.Preferences

  3. 进行保存/检索
using System;
using Newtonsoft.Json;
using Xamarin.Essentials;

namespace YourNamespace
{
    static class Preferences
    {
        public static List<string> SavedList
        {
            get
            {
                var savedList = Deserialize(Preferences.Get(nameof(SavedList), string.empty));
                return savedList ?? new List<string>();
            }
            set
            {
                var serializedList = Serialize(value);
                Preferences.Set(nameof(SavedList), serializedList);
            }
        }

        static T Deserialize<T>(string serializedObject) => JsonConvert.DeserializeObject<T>(serializedObject);

        static string Serialize<T>(T objectToSerialize) => JsonConvert.SerializeObject(objectToSerialize);
    }
}
  1. 在代码中的任何地方引用Preferences.SavedList
void AddToList(string text)
{
    var savedList = new List<string>(Preferences.SavedList);

    savedList.Add(text);

    Preferences.SavedList = savedList;
}