:::no-loc(Xamarin.Essentials)::::Preferences:::no-loc(Xamarin.Essentials):::: Preferences

Preferences クラスを使用すると、アプリケーションのユーザー設定をキー/値ストアに保存できます。The Preferences class helps to store application preferences in a key/value store.

作業開始Get started

この API の使用を始めるには、Xamarin.Essentials の概要ガイドを読み、ライブラリが正しくインストールされてプロジェクトに設定されていることを確認してください。To start using this API, read the getting started guide for Xamarin.Essentials to ensure the library is properly installed and set up in your projects.

Preferences の使用Using Preferences

クラスの :::no-loc(Xamarin.Essentials)::: への参照を追加します。Add a reference to :::no-loc(Xamarin.Essentials)::: in your class:

using :::no-loc(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:


すべてのユーザー設定を削除するには:To remove all preferences:



上のメソッドは、sharedName という名称のオプション string パラメーターを受け取ります。The above methods take in an optional string parameter called sharedName. このパラメーターは、一部のユース ケースで役に立つ基本設定用の追加コンテナーを作成するために使用されます。This parameter is used to create additional containers for preferences which are helpful in some use cases. ユース ケースの 1 つは、拡張機能全体で、あらゆる時計アプリケーションと基本設定を共有する必要がアプリケーションにあるときです。One use case is when your application needs to share preferences across extensions or to a watch application. 下にあるプラットフォーム実装の詳細をご覧ください。Please read the platform implementation specifics below.

サポートされているデータ型Supported Data Types

Preferences では次のデータ型がサポートされています。The following data types are supported in Preferences :

  • boolbool
  • doubledouble
  • intint
  • floatfloat
  • longlong
  • stringstring
  • DateTimeDateTime

システム設定と統合するIntegrate with System Settings

ユーザー設定はネイティブで格納されるため、設定をネイティブ システム設定に統合できます。Preferences are stored natively, which allows you to integrate your settings into the native system settings. プラットフォーム ドキュメントとサンプルに従って、プラットフォームと統合します。Follow the platform documentation and samples to integrate with the platform:

実装の詳細Implementation Details

DateTime の値は DateTime クラスによって定義された 2 つのメソッドを使用して 64 ビット バイナリ (long 型整数) 形式で格納されます。ToBinary メソッドを使用して DateTime の値がエンコードされ、FromBinary メソッドが値をデコードします。Values of DateTime are stored in a 64-bit binary (long integer) format using two methods defined by the DateTime class: The ToBinary method is used to encode the DateTime value, and the FromBinary method decodes the value. 世界協定時刻 (UTC) 値ではない DateTime が格納されているときに値をデコードするために行われる可能性がある調整については、これらのメソッドのドキュメントをご覧ください。See the documentation of these methods for adjustments that might be made to decoded values when a DateTime is stored that is not a Coordinated Universal Time (UTC) value.

プラットフォームの実装の詳細Platform Implementation Specifics

すべてのデータは Shared Preferencesに格納されます。All data is stored into Shared Preferences. sharedName が指定されていない場合は、既定の共有ユーザー設定が使用されます。指定されている場合は、その名前を使用して プライベート 共有ユーザー設定が取得されます。If no sharedName is specified the default shared preferences are used, otherwise the name is used to get a private shared preferences with the specified name.


アプリケーションをアンインストールすると、すべての " ユーザー設定 " が削除されます。ただし、 自動バックアップが使用されている Android 6.0 (API レベル 23) 以降を対象にして、そこで実行されるアプリは例外です。Uninstalling the application will cause all Preferences to be removed, with the exception being apps that target and run on Android 6.0 (API level 23) or later that use Auto Backup. この機能は既定で有効にされて、 Shared Preferences などのアプリ データを保持し、 Preferences API はそれを利用します。This feature is on by default and preserves app data including Shared Preferences , which is what the Preferences API utilizes. この機能は、Google の ドキュメントに従って無効にできます。You can disable this by following Google's documentation.


文字列を格納するとき、この API では少量のテキストを格納することが想定されています。When storing a string, this API is intended to store small amounts of text. 大量のテキストを格納するためにこれを使用しようとすると、パフォーマンスが低下する可能性があります。Performance may be subpar if you try to use it to store large amounts of text.


他の Xamarin ビデオは、Channel 9 および YouTube でご覧いただけます。Find more Xamarin videos on Channel 9 and YouTube.