如何在Xamarin.Forms

时间:2016-05-17 03:53:19

标签: xamarin xamarin.forms

如何在Xamarin.Forms中存储和检索App设置作为键值对? 就像应用程序关闭时一样,我们可以存储用户首选项,并且在重新启动应用程序时,我们可以获取这些值。

5 个答案:

答案 0 :(得分:44)

使用Properties Dictionary

也可以这样做

用于存储数据:

Application.Current.Properties ["id"] = someClass.ID;

用于获取数据:

if (Application.Current.Properties.ContainsKey("id"))
{
    var id = Application.Current.Properties ["id"] as int;
    // do something with id
}

参考:https://developer.xamarin.com/guides/xamarin-forms/working-with/application-class/#Properties_Dictionary

答案 1 :(得分:6)

我使用Settings Plugin for Xamarin And Windows作为Xamarin.Forms,因为它是在设备级实现的,所以你可以从任何Forms项目,PCL库 OR 访问这些设置您应用中的原生项目。

  • Nuget:Xam.Plugins.Settings
private const string UserNameKey = "username_key";
private static readonly string UserNameDefault = string.Empty;
public static string UserName
{
  get { return AppSettings.GetValueOrDefault<string>(UserNameKey, UserNameDefault); }
  set { AppSettings.AddOrUpdateValue<string>(UserNameKey, value); }
}

答案 2 :(得分:4)

Application对象(在VS中你得到一个继承自它的App类,我认为Xamarin Studio模板可能略有不同)有一个Properties字典,专门用于这个。如果您需要确保立即保存属性,可以使用Application.SavePropertiesAsync方法。

答案 3 :(得分:1)

您可以使用Xamarin.Essential附带的首选项。

        /* You need to using Xamarin.Essentials
        If you do not have Xamarin.Essentials installed,
        install it from (NuGet Package Manager)
        */

        // Add a reference to Xamarin.Essentials in your class
        using Xamarin.Essentials;

        // To save a value for a given key in preferences
        Preferences.Set("my_key", "my_value");

        // To retrieve a value from preferences or a default if not set
        var myValue = Preferences.Get("my_key", "default_value");

        // To check if a given key exists in preferences
        bool hasKey = Preferences.ContainsKey("my_key");

        // To remove the key from preferences
        Preferences.Remove("my_key");

        // To remove all preferences
        Preferences.Clear();

看看这个链接: https://docs.microsoft.com/en-us/xamarin/essentials/preferences?tabs=android

答案 4 :(得分:1)

如果设置更多的是在运行时未更改的配置(例如应用程序的某种 web.config),您可以使用 App.xaml 并将值存储在字典中:

<Application.Resources>
    <ResourceDictionary>
        <Style x:Key="SmallLabel" TargetType="Label">
            <Setter Property="TextColor" Value="Gray" />
            <Setter Property="Font" Value="{StaticResource FontItalicSmall}" />
        </Style>
    </ResourceDictionary>
</Application.Resources>

并在 C# 代码中检索它们,如下所示:

var style = (Style)Application.Current.Resources["SmallLabel"];