任何人都可以帮助我了解如何在Xamarin表单设置插件中存储列表。
答案 0 :(得分:2)
在设置插件中,您可以按键值方式存储,因此不能直接存储列表。一种解决方法是,您可以将列表序列化为json字符串,然后可以使用密钥存储该列表。 然后,当您需要返回列表时,可以使用键获取该json字符串并将其反序列化为原始格式。
答案 1 :(得分:1)
“ Xamarin设置”插件已过时,不再维护。它的功能已集成到Xamarin.Essentials中,建议继续使用。
添加Newtonsoft.Json NuGet Package和Xamarin.Essentials NuGet Package
利用Newtonsoft.Json.JsonConvert
对List<T>
进行序列化/反序列化string
,并使用Xamarin.Essentials.Preferences
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);
}
}
Preferences.SavedList
void AddToList(string text)
{
var savedList = new List<string>(Preferences.SavedList);
savedList.Add(text);
Preferences.SavedList = savedList;
}