回答:
多くのアプリケーションは、特定のアプリケーションまたはアクティビティの設定に関するユーザー設定をキャプチャする方法を提供する場合があります。これをサポートするために、AndroidはシンプルなAPIセットを提供しています。
プリファレンスは通常、名前と値のペアです。これらは、アプリケーションのさまざまなアクティビティ全体で「共有設定」として保存できます(現在、プロセス間で共有することはできません)。または、アクティビティに固有に保存する必要があるものにすることもできます。
共有設定:共有設定は、アプリケーションのすべてのコンポーネント(アクティビティ、サービスなど)で使用できます。
アクティビティで処理される設定:これらの設定は、アクティビティ内でのみ使用でき、アプリケーションの他のコンポーネントでは使用できません。
共有設定:
共有設定は、getSharedPreferencesメソッドの助けを借りて管理されますContextクラスます。プリファレンスはデフォルトのファイル(1)に保存されます。または、プリファレンスの参照に使用するファイル名(2)を指定できます。
(1)ファイル名を指定してインスタンスを取得する方法は次のとおりです
public static final String PREF_FILE_NAME = "PrefFile";
SharedPreferences preferences = getSharedPreferences(PREF_FILE_NAME, MODE_PRIVATE);
MODE_PRIVATE設定の操作モードです。これはデフォルトのモードであり、作成されたファイルには呼び出し側のアプリケーションのみがアクセスすることを意味します。サポートされている他の2つのモードはMODE_WORLD_READABLEおよびMODE_WORLD_WRITEABLEです。にMODE_WORLD_READABLE、他のアプリケーション作成したファイルを読み込むことができますが、それを変更することはできません。MODE_WORLD_WRITEABLE他のアプリケーションの場合、作成されたファイルに対する書き込み権限も持っています。
(2)推奨される方法は、ファイル名を指定せずにデフォルトモードで使用することです
SharedPreferences preferences = PreferenceManager.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();
Editorは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のデータストレージに関する投稿を確認してください。
PreferenceManager.setDefaultValues(this, R.xml.profiles_preferences, false);
preferencesオブジェクトに値を設定した後、前者がバックグラウンドでの保存を処理するため、呼び出すことeditor.apply()をお勧めeditor.commit()します。