多くのアプリケーションは、特定のアプリケーションまたはアクティビティの設定に関するユーザー設定をキャプチャする方法を提供する場合があります。これをサポートするために、AndroidはAPIのシンプルなセットを提供します。
プリファレンスは通常、名前と値のペアです。これらは、アプリケーションのさまざまなアクティビティ間で「共有設定」として保存できます(現在、プロセス間で共有することはできません)。または、アクティビティに固有に保存する必要があるものにすることもできます。
共有設定:共有設定は、アプリケーションのすべてのコンポーネント(アクティビティ、サービスなど)で使用できます。
アクティビティで処理される設定:これらの設定は、アクティビティでのみ使用でき、アプリケーションの他のコンポーネントでは使用できません。
共有設定:
共有設定は、クラスのgetSharedPreferences
メソッドを使用して管理されます。Context
プリファレンスはデフォルトのfile(1)に保存されます。または、プリファレンスを参照するために使用するファイル名(2)を指定できます。
(1)ファイル名を指定した場合のインスタンスの取得方法は次のとおりです。
public static final String PREF_FILE_NAME = "PrefFile";
SharedPreferences preferences = getSharedPreferences(PREF_FILE_NAME, MODE_PRIVATE);
MODE_PRIVATE
プリファレンスの動作モードです。これはデフォルトのモードであり、作成されたファイルには呼び出し元のアプリケーションのみがアクセスすることを意味します。MODE_WORLD_READABLE
サポートされている他の2つのモードはとですMODE_WORLD_WRITEABLE
。他MODE_WORLD_READABLE
のアプリケーションでは、作成されたファイルを読み取ることはできますが、変更することはできません。他のアプリケーションの場合MODE_WORLD_WRITEABLE
も、作成されたファイルに対する書き込み権限があります。
(2)推奨される方法は、ファイル名を指定せずにデフォルトモードで使用することです。
SharedPreferences preferences = PreferencesManager.getDefaultSharedPreferences(context);
最後に、プリファレンスインスタンスを取得したら、プリファレンスから保存された値を取得する方法を次に示します。
int storedPreference = preferences.getInt("storedInt", 0);
設定ファイルに値を保存するには、SharedPreference.Editor
オブジェクトを使用する必要があります。クラスEditor
のネストされたインターフェイスです。SharedPreference
SharedPreferences.Editor editor = preferences.edit();
editor.putInt("storedInt", storedPreference); // value to store
editor.commit();
エディタは、ファイルから設定値を削除するremove()
などのメソッドもサポートしています。clear()
アクティビティ設定:
共有設定は、他のアプリケーションコンポーネントで使用できます。ただし、プリファレンスを他のコンポーネントと共有する必要がなく、アクティビティをプライベートプリファレンスにしたい場合。あなたはgetPreferences()
活動の方法の助けを借りてそれを行うことができます。このgetPreference
メソッドはgetSharedPreferences()
、プリファレンスファイル名にアクティビティクラスの名前を持つメソッドを使用します。
以下は、設定を取得するためのコードです
SharedPreferences preferences = getPreferences(MODE_PRIVATE);
int storedPreference = preferences.getInt("storedInt", 0);
値を保存するコードも、共有設定の場合と同じです。
SharedPreferences preferences = getPreference(MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.putInt("storedInt", storedPreference); // value to store
editor.commit();
アクティビティ状態をデータベースに保存するなど、他の方法を使用することもできます。注Androidには、と呼ばれるパッケージも含まれていますandroid.preference
。このパッケージは、アプリケーション設定UIを実装するためのクラスを定義します。
その他の例を確認するには、開発者サイトにあるAndroidのデータストレージの投稿を確認してください。