web-dev-qa-db-ja.com

Xamarin FormsSharedpreferencesクロス

クロスプラットフォームでアプリケーション設定を操作するための最良の解決策を知りたいのですが。

IOSでは、設定画面でアプリの外部で設定を変更できますが、WindowsPhoneとAndroidでは変更できません。

したがって、私のアイデアは、すべてのアプリケーション設定を表示する通常のページ/画面をアプリ内に作成し、DependencyServicesを使用してデバイスごとに特定の実装が可能なSave()メソッドとGet()メソッドとのインターフェイスを持つことです。

これは正しい方法ですか?

12
user1845593

Application.Current.Propertiesディクショナリを使用してみましたが、実装に問題がありました。

わずかな労力で機能したソリューションは、JamesMontemagnoのXam.Plugin.SettingsNuGetでした。 GitHub NuGetをインストールすると、Settings.csを使用してヘルパーフォルダーが自動的に作成されます。永続的な設定を作成するには、次のようにします。

    private const string QuestionTableSizeKey = "QuestionTableSizeKey";
    private static readonly long QuestionTableSizeDefault = 0;

そして

    public static long QuestionTableSize
    {
        get
        {
            return AppSettings.GetValueOrDefault<long>(QuestionTableSizeKey, QuestionTableSizeDefault);
        }
        set
        {
            AppSettings.AddOrUpdateValue<long>(QuestionTableSizeKey, value);
        }
    }

アプリでのアクセスと設定は次のようになります。

namespace XXX
{
    class XXX
    {
        public XXX()
        {
                long myLong = 495;
                ...
                Helpers.Settings.QuestionTableSize = myLong;
                ...
                long oldsz = Helpers.Settings.QuestionTableSize;                   
        }
    }

}
1
heights1976